Scala数据类型及其类型转换

数据类型

Byte、Short、Int、Long、Char、String、Float、Double、Boolean

注:Scala数据类型与Java的区别

  1. scala中所有的类型都使用大写字母开头
  2. 整形使用Int而不是Integer
  3. scala中定义变量可以不写类型,让scala编译器自动推断
  4. scala中默认的整形是Int,默认的浮点型是Double

Scala数据类型的层次结构:
在这里插入图片描述
其中:
Any:所有类型的父类,它有两个自雷AnyRef和AnyVal
AnyVal:所有数值类型的父类
AnyRef:所有对象类型(引用类型)的父类
Unit:表示空,Unit是AnyVal的子类,类似于Java中的 void,但 scala要Java更加面向对象
Null:Null是 AnyRef的子类,也就是说它是所有引用类型的子类,可以将null赋值给任何引用对象类型
Noting:所有类型的子类,不能直接创建该类型实例,某个方法抛出异常时,返回的就是 Nothinge类型,因为Nothing是所有类的子类,那么它可以赋值为任何类型

类型转换

自动类型转换

概念:范围小的数据类型值会自动转换为范围大的数据类型值
数据类型范围:byte -> Short -> Char -> Int -> long -> Float -> Double

示例:

val a:Int = 3
val b:Double = 3 + 2.21  //因为是int类型和 double:类型的值进行计算,所以最终结果为: Double类型
val c:Byte = a + 1 //这样写会报错,因为最终计算结果是Int类型的数据,将其值Byte类型肯定不行

强制类型转换

概念:范围大的数据类型值会强制转换为范围小的数据类型值
注:使用强制类型转换的时候可能会造成精度缺失问题
格式:

val/var 变量名:数据类型 = 具体的值.toXxx //Xxx表示你要转换的数据类型

示例:

val a:Double = 5.21
val b:Int = a.toInt

值类型和String类型之间的相互转换

  1. 值类型的数据转换成String类型
格式一:
val/var 变量名:String = 值类型数据 + ""
格式二:
val/var 变量名:String = 值类型数据.toString
  1. String类型的数据转换成其对应的值类型
格式:val/var 变量名:值类型 = 字符串值.toXxx   //Xxx表示你要转换到的数据类型

注:

  • String类型的数据转成Char类型的数据,方式有点特殊,并不是调用 toChar,而是 toCharArray

猜你喜欢

转载自blog.csdn.net/zh2475855601/article/details/113802506