What are the Data types in Scala?

In Scala, every value is assigned a type such as numerical values and functions. The below diagram shows a subset of the type hierarchy.

scala data type

At the top Scala has any data type that is used to define some universal methods that are hashCode, equals, and toString. The top data type has direct subclasses such as AnyVal and AnyRef. AnyVal is used to represents the value types. Apart from this, it has nine predefined value types which are on-nullable such as Float, Double, Char, Long, Byte, Int, Boolean, and Short. The user type defined in Scala is a subtype of AnyRef.

Let us understand it with the below example.

In the following program, the characters, integers, functions, and boolean values are the objects and a value list of type List[Any] is defined. Now the list is initialized from different types of elements and accepted by the list.

val list: List[Any] = List( "a string", 732, // an integer 'c', // a character true, // a boolean value () => "an anonymous function returning a string" ) list.foreach(element => println(element))

Output of the program.

scala type program

Click Here To Download Code File.

Scala Data Types

Scala supports the following list of data types.

1. Byte signed value 8 bit . Range from -128 to 127
2. Short signed value 16 bit . Range from -32768 to 32767
3. Int signed value 32 bit . Range from -2147483648 to 2147483647
4. Long signed value 64 bit . from -9223372036854775808 to 9223372036854775807
5. Float IEEE 754 single-precision float 32 bit
6. Short IEEE 754 double-precision float 64 bit
7. Char unsigned Unicode character 16 bit . Range from U+0000 to U+FFFF
8. String A sequence of Chars
9. Boolean Either the literal true or the literal false
10. Unit Corresponds to no value
11. Null null or empty reference
12. Nothing The subtype of every other type; includes no values
13. Any The supertype of any type; any object is of type Any
14. AnyRef The supertype of any reference type