一.整数类型(Byte、Short、Int、Long)

Scala的整数类型就是用于存放整数值的,比如12,30,3456等等。

1.整形分类

数据类型 描述
Byte [1] 8位有符号补码整数。数值区间为 -128 到 127
Short [2] 16位有符号补码整数。数值区间为 -32768 到 32767
Int [4] 32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long [8] 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807 = 2的(64-1)次方-1

2.案例

Scala各整数类型有固定的表数范围和字段长度,不受具体操作的影响,以保证Scala程序的可移植性。

  1. // 正确
  2. var n1:Byte = 127
  3. var n2:Byte = -128
  4. // 错误
  5. // var n3:Byte = 128
  6. // var n4:Byte = -129

Scala的整型,默认为Int型,声明Long型,须后加‘l’或‘L’

        var n5 = 10
        println(n5)

        var n6 = 9223372036854775807L
        println(n6)

Scala程序中变量常声明为Int型,除非不足以表示大数,才使用Long

二.浮点类型(Float、Double)

Scala的浮点类型可以表示一个小数,比如123.4f,7.8,0.12等等。

1.浮点型分类

数据类型 描述
Float [4] 32 位, IEEE 754标准的单精度浮点数
Double [8] 位 IEEE 754标准的双精度浮点数

2.案例

Scala的浮点型常量默认为Double型,声明Float型常量,须后加‘f’或‘F’。

    // 建议,在开发中需要高精度小数时,请选择Double
        var n7 = 2.2345678912f
        var n8 = 2.2345678912

        println("n7=" + n7)  // n7=2.2345679
        println("n8=" + n8)  // n8=2.2345678912

三.字符类型(Char)

1.基本说明

字符类型可以表示单个字符,字符类型是Char,16位无符号Unicode字符(2个字节),区间值为U+0000到U+FFFF。

2.案例

(1)字符常量是用单引号 ‘ ‘ 括起来的单个字符。

(2)可以直接给Char赋一个整数,然后输出时,会按照对应的unicode字符输出

    //(1)字符常量是用单引号 ' ' 括起来的单个字符。
        var c1: Char = 'a'

        println("c1=" + c1)

        //(2)可以直接给Char赋一个整数,然后输出时,会按照对应的unicode字符输出
        println("c1码值=" + c1.toInt)

(3)Char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码。

        var c2: Char = 98 // 正确,因为直接将一个数值给char,编译器只判断是否越界
        var c3: Char = 'a' + 1 // 错误,Int高->char低,编译器判断类型

        var c4: Char = ('a' + 1).toChar

(4)\t :一个制表位,实现对齐的功能

   println("姓名\t年龄")

(5)\n :换行符

    println("西门庆\n潘金莲")

(6)\ :表示\

    println("c:\\电影\\avi")

(7)\” :表示”

 println("同学们都说:\"大海哥最帅\"")

四.布尔类型:Boolean

1.基本说明

(1)布尔类型也叫Boolean类型,Booolean类型数据只允许取值true和false

(2)boolean类型占1个字节。

2.案例

        var isResult : Boolean = false
        var isResult2 : Boolean = true

五.Unit类型、Null类型和Nothing类型

1.概念

数据类型 描述
Unit 表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Null null , Null 类型只有一个实例值null
Nothing Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。当一个函数,我们确定没有正常的返回值,可以用Nothing来指定返回类型,这样有一个好处,就是我们可以把返回的值(异常)赋给其它的函数或者变量(兼容性)

2.案例

Null类只有一个实例对象,Null类似于Java中的null引用。Null可以赋值给任意引用类型(AnyRef),但是不能赋值给值类型(AnyVal)

object TestDataType {

    def main(args: Array[String]): Unit = {

        //null可以赋值给任意引用类型(AnyRef),但是不能赋值给值类型(AnyVal)
        var n1: Int = null // 错误
        println("n1:" + n1)

        var cat = new Cat();
        cat = null    // 正确
    }
}

class Cat {

}

Unit类型用来标识过程,也就是没有明确返回值的函数。

由此可见,Unit类似于Java里的void。Unit只有一个实例——( ),这个实例也没有实质意义

object TestSpecialType {

    def main(args: Array[String]): Unit = {

        def sayOk : Unit = {// unit表示没有返回值,即void
            println("say ok")
        }
        sayOk
    }
}

Nothing,可以作为没有正常返回值的方法的返回类型,非常直观的告诉你这个方法不会正常返回,而且由于Nothing是其他任意类型的子类,他还能跟要求返回值的方法兼容。

object TestSpecialType {

    def main(args: Array[String]): Unit = {

        def test() : Nothing={
            throw new Exception()
        }
        test
    }
}