我在Scala中发现占位符的"奇怪"用法:在预编译器中
class Precompiler {
var sources = Array[File]()
var workingDirectory: File = _
var targetDirectory:File = _
var templates = Array[String]()
var info:{def apply(v1:String):Unit} = (value:String)=>println(value)
var contextClass:String = _
var bootClassName:String = _
// ...
}
Run Code Online (Sandbox Code Playgroud)
这是部分功能吗?还是其他什么?是否有任何演示来显示像这样的占位符的用法?
实际上,不,这只是无聊的null.来自Scala语言规范:
变量定义var x:T = _只能作为模板的成员出现.它引入了一个带有类型T和默认初始值的可变字段.默认值取决于类型T,如下所示:
Run Code Online (Sandbox Code Playgroud)0 if T is Int or one of its subrange types, 0L if T is Long, 0.0f if T is Float, 0.0d if T is Double, false if T is Boolean, () if T is Unit, null for all other types T .
null在这些案例中写作可能更清楚.我想_可能看起来更像Scala-y.
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |