Directorio de artículos
tipo de datos
Byte 、 Corto 、 Int 、 Largo 、 Carácter 、 Cadena 、 Flotante 、 Doble 、 Booleano
Nota: la diferencia entre el tipo de datos Scala y Java
- Todos los tipos en scala comienzan con letras mayúsculas
- Dar forma usa Int en lugar de Integer
- Las variables definidas en scala no necesitan escribir el tipo, deje que el compilador de scala infiera automáticamente
- El número entero predeterminado en scala es Int, y el punto flotante predeterminado es Double
Estructura jerárquica de los tipos de datos de Scala:
Entre ellos:
Any: la clase padre de todos los tipos, tiene dos subclases AnyRef y AnyVal
AnyVal: la clase padre de todos los tipos numéricos
AnyRef: la clase padre de todos los tipos de objetos (tipos de referencia)
Unidad: representa vacío, Unit es una subclase de AnyVal, similar a void en Java, pero scala quiere que Java esté más orientado a objetos.
Null: Null es una subclase de AnyRef, lo que significa que es una subclase de todos los tipos de referencia. Puede asignar nulo a cualquier referencia. Tipo de objeto
Nota: todos los tipos de subclases no pueden crear directamente instancias de este tipo. Cuando un método arroja una excepción, el tipo de retorno es Nothinge, porque Nothing es una subclase de todas las clases, por lo que se puede asignar a cualquier tipo
Conversión de tipo
Conversión automática de tipos
Concepto: Un valor de tipo de datos con un rango pequeño se convertirá automáticamente en un valor de tipo de datos con un
rango grande . Rango de tipo de datos: byte -> Corto -> Char -> Int -> largo -> Float -> Double
Ejemplo:
val a:Int = 3
val b:Double = 3 + 2.21 //因为是int类型和 double:类型的值进行计算,所以最终结果为: Double类型
val c:Byte = a + 1 //这样写会报错,因为最终计算结果是Int类型的数据,将其值Byte类型肯定不行
Conversión de tipo forzada
Concepto: Un valor de tipo de datos con un rango grande será coaccionado a un valor de tipo de datos con un rango pequeño.
Nota: El uso de conversión de tipo coercitivo puede causar una falta de precisión.
Formato:
val/var 变量名:数据类型 = 具体的值.toXxx //Xxx表示你要转换的数据类型
Ejemplo:
val a:Double = 5.21
val b:Int = a.toInt
Conversión entre tipos de valor y tipos de cadena
- Los datos de tipo de valor se convierten en tipo de cadena
格式一:
val/var 变量名:String = 值类型数据 + ""
格式二:
val/var 变量名:String = 值类型数据.toString
- Los datos del tipo de cadena se convierten a su tipo de valor correspondiente
格式:val/var 变量名:值类型 = 字符串值.toXxx //Xxx表示你要转换到的数据类型
Nota:
- Los datos de tipo cadena se convierten en datos de tipo Char, la forma es un poco especial, no para llamar a toChar, sino a toCharArray