• Articles
  • Tutorials
  • Interview Questions

Basic Types in Scala

What is a Basic Type in Scala

Basically, a Scala program describes the interaction between objects which interchange the messages. For example, things like numbers, character, and strings, etc. are objects that can interact with other objects or similar types of objects.

Watch this Apache-Spark-Scala video

Video Thumbnail

Objects with no internal structure that is with no components are said to be of a basic type.

class hierarchy of scala

Table: Basic types in Scala

Data type Range
Byte integers in the range from −128 to 127
Short integers in the range from −32768 to 32767
Int integers in the range from −2147483648 to 2147483647
Long integers in the range from −9223372036854775808 to9223372036854775807
Float largest positive finite float: 3.4028235×1038 and smallest positive finite nonzero float: 1.40×10−45
Double largest positive finite double:1.7976931348623157×10308 and the smallest positive finite nonzero double: 4.9×10−324
char Unicode characters with code points in the range from U+0000to U+FFFF
String a finite sequence of Chars
Boolean either the literal true or the literal false
Unit either the literal true or the literal false
Null null or empty reference
Nothing the subtype of every other type; includes no values
Any Any the supertype of any type; any object is of type Any
AnyRef The supertype of any reference type i.e. nonvalue Scala classes and user-defined classes

When declaring a variable or a constant use keyword var or the keyword Val then the name of a variable or a constant, an equals sign (i.e., the symbol =) and then the value the variable or the constant. Also, you can wite:

scala> val i : Byte = 32
i: Byte = 32

If the value does not agree with the type then a type of error has occurred.

scala> var x=30
x: Int = 30

An integer literal that is suffixed by an L or an l is assumed to be of type Long:

scala> var x=3l
x: Long = 3

Certification in Bigdata Analytics

Numbers can be written as a decimal, octal or hexadecimal numerals. Octal numbers can be written by adding prefix 0:

scala> 0755
res0: Int = 493

Hexadecimal numbers can be written by adding prefix 0x or 0X:

scala> 0x2009
res1: Int = 8201

A floating-point number contains an integral part and an optional decimal point which is represented by a period character that may be followed by an optional fractional part, an optional exponent and an optional type suffix. The exponent is started with either the letter E or e.

The letters f and F represents a single-precision floating-point number whereas the letters d and D represents a double-precision floating-point number:

scala> 20.11
res4: Double = 20.11

 

scala> 15.2E10
res4: Double = 15.5E10

A character must be enclosed in single quotation marks:

scala> var a = ‘i’
a: Char = ‘i’

You cannot assign to a character variable a single quotation mark because it gives an error. To solve this problem escape sequence is used which is started with /.

Table: Escape Sequence

Escape sequence Meaning
b Backspace
t Horizontal tab
n Newline
Single quote
Double Quote
\ Backslash
ooo Octal digit
uhhhh h is hexadecimal digit
f Form feed
r Carriage return

Become a Big Data Architect

A String is a sequence of Chars that is enclosed in double-quotes:

scala> "Scala"
res6: java.lang.String = Scala

The literals true and false denote truth and untruth, respectively. These literals are the only values of type Boolean:

scala> val T = true
T: Boolean = true

Unit Type contains only one value which is designated by two parentheses:

scala> var x = ()
x: Unit = ()

Course Schedule

Name Date Details
Big Data Course 14 Dec 2024(Sat-Sun) Weekend Batch View Details
21 Dec 2024(Sat-Sun) Weekend Batch
28 Dec 2024(Sat-Sun) Weekend Batch

About the Author

Technical Research Analyst - Big Data Engineering

Abhijit is a Technical Research Analyst specialising in Big Data and Azure Data Engineering. He has 4+ years of experience in the Big data domain and provides consultancy services to several Fortune 500 companies. His expertise includes breaking down highly technical concepts into easy-to-understand content.