knu*_*ton 18 scala type-inference
我在应用于def和时观察到Scala类型推断的差异val.
使用def,我可以定义一个const返回类型值的抽象nullary方法Int => Int.const使用函数文字实现时,我不需要提供参数类型,因为它可以由编译器推断:
trait D {
def const: Int => Int
}
object D extends D {
def const = i => i + 1
}
Run Code Online (Sandbox Code Playgroud)
这可以.(在缺点方面,正在为每次访问创建一个新的函数实例D.const.)
现在考虑一个类似的结构使用val:
trait V {
val const: Int => Int
}
object V extends V {
val const = i => i + 1
}
Run Code Online (Sandbox Code Playgroud)
这将无法编译,失败
error: missing parameter type
val const = i => i + 1
^
Run Code Online (Sandbox Code Playgroud)
为什么?
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |