In programming, a "literal" refers to a notation or a specific representation of a value within the source code of a program. Literals are used to directly define constant values of various data types without any computation or evaluation. They are often used for initializing variables, passing arguments to functions, or specifying values within expressions.
In Scala, there are several types of literals, each representing values of different data types. Here are the main types of literals in Scala:
Integer Literals: Integer literals represent whole numbers. They can be specified in various formats, including decimal, hexadecimal, octal, and binary.
val decimalInt: Int = 42
val hexadecimalInt: Int = 0x2A // Hexadecimal (42 in decimal)
val octalInt: Int = 052 // Octal (42 in decimal)
val binaryInt: Int = 0b101010 // Binary (42 in decimal)
Floating-Point Literals: Floating-point literals represent real numbers with a decimal point. They can be specified in standard or scientific notation.
val decimalDouble: Double = 3.14
val scientificDouble: Double = 6.02e23 // 6.02 × 10^23
Character Literals: Character literals represent single characters and are enclosed in single quotes.
val charLiteral: Char = 'A'
String Literals: String literals represent sequences of characters and are enclosed in double quotes. Scala provides string interpolation, allowing you to embed expressions within strings using the s"..." syntax.
val greeting: String = "Hello, Scala!"
val interpolatedString: String = s"2 + 2 = ${2 + 2}"
Boolean Literals: Boolean literals represent the two truth values, true and false.
val isTrue: Boolean = true
val isFalse: Boolean = false
Symbol Literals: Symbol literals are used to create unique symbols that are often used as keys in maps or identifiers in certain contexts. They are prefixed with a single quote.
val symbol: Symbol = 'symbolName
Null Literal: The null literal represents the absence of a value or a reference to no object.
val nullValue: AnyRef = null
Unit Literal: The Unit literal, represented by (), is used to indicate that an expression has no meaningful result or value.
val result: Unit = ()
Raw String Literals: Raw string literals are used to create strings with minimal escaping. They are enclosed in triple double quotes ("""...""") and are often used for regular expressions, file paths, or multi-line strings.
val regexPattern: String = """\d+"""
val multiLineString: String =
"""
|This is a multi-line string.
|It can span multiple lines.
""".stripMargin
These are the main types of literals in Scala, each representing values of different data types. Using literals allows you to specify constant values directly in your code, making it more readable and self-explanatory.