Literales de Scala
En Scala, los literales son expresiones que representan directamente valores fijos.
Scala admite varios tipos de literales, que incluyen valores numéricos, caracteres, cadenas, booleanos, etc.
Literales enteros
Los literales enteros se utilizan para el tipo Int. Si se representa un Long, se puede agregar una L o una l minúscula como sufijo después del número.
Los literales enteros pueden ser decimales, hexadecimales y octales.
- Decimal:
42,0,-99 - Hexadecimal: con
0xo0Xcomo prefijo, por ejemplo0x2A,0x0,0XFF - Octal: antes de Scala 2.10 se admitían literales octales, con
0como prefijo, pero en Scala 2.10 y versiones posteriores, los literales octales fueron eliminados.
val decimal = 42 val hex = 0x2A
Literales de punto flotante
Si un número de punto flotante tiene el sufijo f o F, indica que es de tipo Float; de lo contrario, es de tipo Double.
- Doble precisión:
3.14,-0.001,1.0e-10 - Precisión simple:
3.14f,-0.001F
val doubleValue = 3.14 val floatValue = 3.14f
Literales booleanos
Los literales booleanos son true y false.
val isScalaFun = true val isSkyGreen = false
Literales de símbolo
Los literales de símbolo se escriben como:'<identificador>, aquí<identificador>puede ser cualquier identificador de letras o números (nota: no puede comenzar con un número). Este literal se asigna a una instancia de la clase predefinida scala.Symbol.
Por ejemplo: el literal de símbolo'xes una abreviaturascala.Symbol("x")de la expresión; el literal de símbolo se define de la siguiente manera:
package scala
final case class Symbol private (name: String) {
override def toString: String = "'" + name
}
Literales de carácter
En Scala, las variables de carácter se definen con comillas simples'de la siguiente manera:
'a' '\u0041' '\n' '\t'
Donde\representa un carácter de escape, al que le puede seguiru0041un dígito o\r\netc., caracteres de escape fijos.
Literales de cadena
En Scala, los literales de cadena se definen con comillas dobles"de la siguiente manera:
"Hello,\nWorld!" "Ejemplo官网:www.example.com"
- Cadena normal:
"Hello, World!" - Cadena multilínea: se utilizan comillas triples
"""para encerrarla; puede contener saltos de línea y comillas.
Representación de cadenas multilínea
Las cadenas multilínea utilizan tres comillas dobles como delimitador, con el formato:""" ... """。
Ejemplo:
val foo = """Ejemplo www.example.com www.runnoob.com 以上三个地址都能访问"""
Valor null
null es un literal especial que representa el valor nulo de todos los tipos de referencia.
El valor nulo es del tipo scala.Null.
scala.Null y scala.Nothing son tipos especiales que manejan de manera uniforme ciertos "casos límite" del sistema de tipos orientado a objetos de Scala.
La clase Null es el tipo del objeto de referencia null; es una subclase de cada clase de referencia (clases que heredan de AnyRef). Null no es compatible con los tipos de valor.
val nullValue: String = null
Unit
El tipo Unit tiene un único valor de instancia, representado por el literal()que es similar a void en Java.
val unitValue: Unit = ()
Ejemplo
El siguiente es un ejemplo de código que usa diferentes tipos de literales:
Ejemplo
def main(args: Array[String]): Unit = {
// Literales numéricos
val decimal = 42
val hex = 0x2A
val doubleValue = 3.14
val floatValue = 3.14f
// Literales de carácter
val charA = 'A'
val charNewLine = '\n'
// Literales de cadena
val greeting = "Hello, World!"
val multilineString = """This is
|a multi-line
|string""".stripMargin
// Literales booleanos
val isScalaFun = true
val isSkyGreen = false
// Literales especiales
val nullValue: String = null
val unitValue: Unit = ()
// Ejemplo de salida
println(s"Decimal: $decimal, Hex: $hex")
println(s"Double: $doubleValue, Float: $floatValue")
println(s"Char: $charA, New Line: $charNewLine")
println(s"Greeting: $greeting")
println(s"Multiline String: $multilineString")
println(s"Is Scala Fun: $isScalaFun, Is Sky Green: $isSkyGreen")
println(s"Null Value: $nullValue, Unit Value: $unitValue")
}
}
El resultado de compilar y ejecutar el código anterior es:
Decimal: 42, Hex: 42 Double: 3.14, Float: 3.14 Char: A, New Line: Greeting: Hello, World! Multiline String: This is a multi-line string Is Scala Fun: true, Is Sky Green: false Null Value: null, Unit Value: ()Otras extensiones