scala 具有强大的类型推断能力, 但是也不是所有的地方都可以推断出来类型, 下面的几种情况就无法使用 scala 的类型推断:
当定义没有初始值的类字段时val a: Int = _
val a: Int = _
当定义函数或方法的参数时;
当定义函数或方法的返回类型,仅当我们使用显式的 return 语句或者使用递归时
当将变量定义为另一种类型,而不是被直接推断出的类型时,如 val d1: Double = 1。
val d1: Double = 1
除了这几种情况, 类型信息都是可选的, 如果忽略类型, 则 scala 会进行推断.