la各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证Scala程序的可移植性
2) Scala的整型常量/字面量默认为Int类型,声明Long类型常量/字面量时,须后加“l”或者“L”
3) Scala程序中变量常声明为Int类型,除非不足以表示大数,才使用Long
4) 案例
object boke_demo01 {
def main(args: Array[String]): Unit = {
println("Long的最大值:" + Long.MaxValue + "~" + Long.MinValue)
var a = 10 //a Int
var b = 10l //b Long
var c = 9223372036854775807l //说 9223372036854775807 超过 Int
}
}
2.8 浮点类型
2.8.1 基本介绍
Scala的浮点类型可以表示一个小数,比如 9.9f,22.9,0.6等等
2.8.2 浮点类型的分类
2.8.3 浮点类型使用细节
1) 与整数类型类似,Scala浮点类型也有固定的表数范围和字段长度,不受具体OS的影响
2) Scala的浮点类型常量默认为Double类型,声明Float类型常量时,须后加“f”或者“F”
object boke_demo01 {
def main(args: Array[String]): Unit = {
var num1:Float = 1.2345678912f
var num2:Double = 1.2345678912
println("num1=" + num1 + "\n" +"num2=" + num2)
/*
运行结果:
num1=1.2345679
num2=1.2345678912
*/
}
}
3) 浮点型常量有两种表示形式
十进制数形式:如5.21,521.0f,.521等 (必须有小数点)
科学计数法形式:如5.21e2 = 5.21 乘以10的2次方,5.21E-2 = 5.21 除以10的2次方
4) 通常情况下,应该使用Double类型,因为它比Float类型更精确(小数点后大致7位)
2.9 字符类型(Char)
2.9.1 基本介绍
字符类型可以表示单个字符,字符类型是Char,16位无符号Unicode字符(2个字节),区间值为U+0000到U+FFFF
2.9.2 案例演示
object boke_demo01 {
def main(args: Array[String]): Unit = {
var char1: Char = 99
//当我们输出一个char类型是,它会输出该数字对应的字符(码值表 unicode)//unicode 码值表包括ascii
println("char1=" + char1) // c
//char可以当做数字进行运行
var char2: Char = 'c'
var num = 10 + char2
println("num=" + num) // 109
//原因和分析
//1. 当把一个计算的结果赋值一个变量,则编译器会进行类型转换及判断(即会看范围+类型)
//2. 当把一个字面量赋值一个变量,则编译器会进行范围的判定
// var c2: Char = 'c' + 1 error
// var c3: Char = 99 + 1 error
// var c4: Char = 100 true
}
}
2.9.3 字符类型使用细节
1) 字符常量是使用单引号( ' ' )括起来的单个字符,例如:var a1 = 'a', var a2 = '张', var a3 = '20'
2) Scala也允许使用转义字符 '\' 来将其后的字符转变为特殊字符型常量,例如:var a4 = '\n' ('\n'表示换行符)
3) 可以直接给Char赋一个整数,然后输出时,会按照对应的Unicode字符输出
4) Char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码
2.10 布尔类型(Boolean)
2.10.1 基本介绍
布尔类型也叫Boolean类型,Boolean类型数据只允许取值true或false,布尔类型占一个字节
布尔类型适用于逻辑运算,一般用于程序流程控制 [后面详解]
2.11 Unit类型、Null类型和Nothing类型
2.11.1 基本说明
2.11.2 使用细节案例
1) Unit类型用来标识过程,也就没有明确返回值的函数。由此可见,Unit类似于Java里的void。Unit直邮一个实例,(),这个实例也没有实质的意义
2) Null类只有一个实例对象,null,类似于Java中null的引用。null可以赋值给任意引用类型(AnyRef),但是不能赋值给值类型(AnyVal,比如:Int,Float,Char, Boolean,Long,Double,Byte,Short)
3) Nothing,可以作为没有正常返回值的方法的返回类型,非常直观的告诉你这个方法不会正常返回,而且由于Nothing是其它任意类型的子类,它还能跟要求返回值的方法兼容
4) 代