3.3 数据类型

在 Scala 中所有的数据都可以看成对象, 所以 Scala 并没有刻意的去把数据分成基本数据类型和引用数据类型, 所以也就没有所谓的包装类型了.

Scala 整体把数据分成 2 种类型:

  1. 值类型(AnyVal) 等同于 Java 中的基本类型, 而且编译成 class 之后也确实就是用的 Java 的基本数据类型来表示 但是比 Java 的基本数据类型多了几个"边界"类型

  2. 引用类型(AnyRef) 等同于 Java 引用数据类型(对象类型)

注意: 不管是值类型还是引用数据类型都是对象, 他们都继承自Any这个类.

注意:

  • 在 Scala 中类型都是用类表示的, 所以都是使用的大写字母开头

    例如: Java 中的 int, 在 Scala 中就是 Int

  • 其他的也是类似


3.3.1 Scala 几个特殊类型的理解

1. Unit

表示一种"无值", 等同于 Java 中的 void.

用作不返回任何结果的方法(函数)的返回值类型。

Unit只有一个实例值,写成()

package com.atguigu.day01

object UtilDemo {
  def main(args: Array[String]): Unit = {
    val a = foo()
    println(a)  // 输出 ()
  }

  def foo(): Unit ={
    println(1)
  }
}

2. Null

Null 类型只有一个实例值null

和 Java 中的 null 值等同. 用于给引用数据类型赋值, 然后释放对象进行垃圾回收.

不兼容值类型.
var b = 10
b = null  // 因为 b 是 Int 类型, 所以这个地方会编译错误

3. Nothing

Nothing 类型在 Scala 的类层级的最低端;

它是任何其他类型的子类型。

并且他没有任何的实例.

有 2 个作用:

  1. 用于定义Nil.(List[Nothing]) 后面再讲

  2. 作为一个不能正常返回值的函数的返回值类型.

    
    def foo(): Nothing = {
    
       throw new Exception()
    }
    
Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-07-02 08:12:45

results matching ""

    No results matching ""