English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

类型数据 Scala

Scala tiene los mismos tipos de datos que Java, a continuación se muestra la tabla de tipos de datos admitidos por Scala:

Tipo de datos描述
Byte8entero con signo de complemento a dos, el rango numérico es -128 hasta 127
Short16entero con signo de complemento a dos, el rango numérico es -32768 hasta 32767
Int 32entero con signo de complemento a dos, el rango numérico es -2147483648 hasta 2147483647
Long 64entero con signo de complemento a dos, el rango numérico es -9223372036854775808 hasta 9223372036854775807
Float32 IEEE 754 número de coma flotante de precisión simple
Double64 IEEE 754 número de coma flotante de doble precisión
Char16carácter Unicode sin signo, el rango de valores es U+0000 a U+FFFF
Cadenasecuencia de caracteres
Booleanoverdadero o falso
UnitRepresenta un valor nulo, equivalente a void en otros lenguajes. Se utiliza como tipo de resultado de métodos que no devuelven nada. Unit tiene un único valor de instancia, escrito como ().
Nulonulo o referencia vacía
NadaEl tipo Nothing está en la parte más baja de la jerarquía de clases de Scala; es subtipo de cualquier otro tipo.
AnyAny es la superclase de todos los demás tipos de clase
AnyRefAnyRef es la clase base de todas las clases de referencia (reference class) en Scala

Todos los tipos de datos enumerados en la tabla anterior son objetos, lo que significa que Scala no tiene tipos nativos como en Java. En Scala, se pueden llamar métodos a tipos de datos básicos como números.

Literales básicas de Scala

Scala es muy simple y directo. A continuación, describiremos en detalle las literales de Scala.

Literales de tipo entero

Las literales de tipo entero se utilizan para el tipo Int, si se representa Long, se puede agregar L o l en minúsculas al final del número.:

0
035
21 
0xFFFFFFFF 
0777L

Literales de tipo flotante

Si el número de punto flotante tiene el sufijo f o F, representa un tipo Float, de lo contrario, es un tipo Double. Ejemplo:

0.0 
1e30f 
3.14159f 
1.0e100
.1

Literales de tipo booleano

Las literales de tipo booleano tienen true y false.

literal de símbolo

La literal de símbolo se escribe como: '<identificador> aquí <identificador> Puede ser cualquier identificador compuesto por letras o números (nota: no puede comenzar con un número). Este tipo de literal se mapea a la instancia de la clase predefinida scala.Symbol.

por ejemplo: literal de símbolo 'x es una expresión scala.Symbol("x") abreviatura, la literal de símbolo se define como:

package scala
final case class Symbol private (name: String) {
   override def toString: String = "'" + name
}

Literales de caracteres

Se utiliza comillas simples en las variables de cadena de Scala ' Definido, como se muestra a continuación:

'a' 
'\u0041'
'\n'
'\t'

Entre ellos \ Representa un carácter de escape, que puede estar seguido de u0041 Número o \r\n y otros caracteres de escape fijos.

Literales de cadena

Se utiliza comillas dobles en las literales de cadena de Scala " Definido, como se muestra a continuación:

"¡Hola,\n¡Mundo!"
"Sitio web de tutoriales básicos: es.oldtoolbag.com"

Método de representación de cadenas de múltiples líneas

Las cadenas de múltiples líneas se representan con tres comillas dobles como separador, con el formato:""" ... """.

El ejemplo es el siguiente:

val foo = """Tutoriales básicos
es.oldtoolbag.com
es.oldtoolbag.com
www.runnoob.com
Las tres direcciones de arriba pueden acceder a ""

Valor nulo

El valor nulo es del tipo scala.Null.

Scala.Null和scala.Nothing是用统一的方式处理Scala面向对象类型系统的某些"边界情况"的特殊类型。

Null类是null引用对象的类型,它是每个引用类(继承自AnyRef的类)的子类。Null不兼容值类型。

转义字符 Scala

下表列出了常见的转义字符:

转义字符Unicode描述
\b\u0008退格(BS) ,将当前位置移到前一列
\t\u0009水平制表(HT) (跳到下一个TAB位置)
\n\u000a换行(LF) ,将当前位置移到下一行开头
\f\u000c换页(FF),将当前位置移到下页开头
\r\u000d回车(CR) ,将当前位置移到本行开头
\"\u0022代表一个双引号(")字符
\'\u0027代表一个单引号(')字符
\\\u005c代表一个反斜线字符 '\'

0 到 255 间的 Unicode 字符可以用一个八进制转义序列来表示,即反斜线‟\‟后跟 最多三个八进制。

在字符或字符串中,反斜线和后面的字符序列不能构成一个合法的转义序列将会导致 错误编译。

以下实例演示了一些转义字符的使用:

object Test {
   def main(args: Array[String]) {
      println("Hello\tWorld\n\n");
   }
}

运行后输出结果如下:

$ scalac Test.scala
$ scala TestHello    World