Scala学习笔记(2)-类型注意
Scala类型注意事项:
1.Any是绝对的根,所有的其他可实例化类型均有AnyVal和AnyRef派生。
2.所有AnyVal的类型成为值类型(所有数值类型、char、Booble和Unit)
3.而其他类型都以AnyRef(引用类型)为根,并且只能做为对象在堆中分配内存,通过一个内存引用来访问。
4.Scala中提供了null类型表示空类型,意味着对象不指向任何堆内存空间。
5.Scala语法更加优先使用实际类型和实例而不是保留字,如null
6.Unit类型与上述类型均不同,它是一种指示没有任何数据的类型,类似于java中的Void
定义Unit变量使用()即可,也可以用Unit定义值或变量,通常用于定义函数和表达式,如无返回值函数
Unit类型在Scala中作为不返回任何结果的或表达式类型,如println函数返回的是一个Unit类型,因为不反悔任何结果
7.常用的类型操作
asInstanceOf[<type>] 将值转化为指定类型,建议在此之前使用to<type>完成操作转换,以免导致错误
eg:scala> 5.asInstanceOf[Long]
res2: Long = 5
getClass 返回一个值的类型
scala> (1.0/5).getClass
res3: Class[Double] = double
isInstanceOf 如果这个值有指定类型则返回true
scala> (5.0).isInstanceOf[Float]
res4: Boolean = false
hashcode 散列码
scala> "A".hashCode
res6: Int = 65
scala> 'A'.hashCode
res7: Int = 65
to<type> 转换函数
scala> 20.toByte
res8: Byte = 20
scala> 47.toFloat
res9: Float = 47.0
toString 将值输出为字符串
eg:scala> (3.0/4.0).toString
res10: String = 0.75
8.其他
Char类型举例:
scala> val c='A'
c: Char = A
scala> val i:Int =c
i: Int = 65
scala> val t:Char=c
t: Char = A
Boolean类型举例:
scala> val isTrue= !true
isTrue: Boolean = false
scala> val isfalse= !false
isfalse: Boolean = true
scala> val unequal=(5!=6)
unequal: Boolean = true
scala> val isLess =(5<6)
isLess: Boolean = true
与运算符
scala> val unequalAndLess= unequal & isLess
unequalAndLess: Boolean = true
scala> val definitelyFalse=false && unequal
definitelyFalse: Boolean = false
如果需要一个值的状态为Boolean类型,需要显式比较
scala> val zero=0
zero: Int = 0
scala> val isValid=zero > 0
isValid: Boolean = false
Unit类型
scala> val nada=()
nada: Unit = ()
9.元祖
元祖的创建和使用
scala> val info=(5,"Keroben",true)
info: (Int, String, Boolean) = (5,Keroben,true)
scala> val name=info._2
name: String = Keroben
使用->创建key和value
scala> val red="red" -> "Oxff0000"
red: (String, String) = (red,Oxff0000)
scala> val reversed =red._2->red._1 #转化类型
reversed: (String, String) = (Oxff0000,red)