一、scala数据类型
Byte:8位有符号整数
Short:16位有符号整数
Int:32位有符号整数
Long:64位有符号整数
Float:32位单精度浮点数
Double:64位双精度浮点数
Char:16位无符号Unicode字符
String:字符串类型
Boolean:true或false
Unit:表示无值,主要用于无返回结果的方法的返回类型。Unit的实例值为()
Null:null或空引用
Nothing:所有类型的子类。
None:Option的子类型
Nil:空的list
二、字符串常用操作
1、数字类型直接转字符串
val num:Int=10
println(num.toString)
直接使用toString()方法,toString方法可以不带()
2、字符串转数字
如果能够确认字符串为数字类型,可以直接使用toInt,toDouble进行转换。如果不能确认,可以使用如下方法进行判断或转换:
def isDouble(value:String):Boolean={
var c:Try[Any]=null
c=scala.util.Try(value.toDouble)
val result = c match {
case Success(_) => true;
case _ => false;
}
result
}
def toDouble(value:String):Option[Double]={
try {
Some(value.toDouble)
} catch {
case e: Exception =>Some(-0.0)
}
}
3、字符串长度
val value:String="1.0.5"
println(value.length)
out:5
4、字符串格式化
println("%s-%s-%s".format("aa","bb","cc"))
out:aa-bb-cc
三:特殊的数据类型,如Null、None、Nil、Nothing的区别
四种类型均为空值类型
- Null为空引用,是所有AnyRef的子类,也就是说所有引用类型的空类型可以使用Null,值类型不可以使用Null。
- None是一个object,是Option的子类型,some也是option的子类,Option为空时使用None。
- Nil是List一个子类,List为空时可以使用Nil
- 最后说下Nothing,Nothing是所有类型的子类,所有类型为空时可以使用Nothing
四、对象的基类:Any、AnyRef、AnyVal
Any:任何对象的基类,包括AnyRef和AnyVal
AnyRef:引用类型对象的基类
AnyVal:值类型对象的基类
五、变量
1、变量: 在程序运行过程中其值可能发生改变的量叫做变量。使用var声明
2、常量:在程序运行过程中其值不会发生变化的量叫做常量。使用val声明