我正在从这个网站学习 http://naildrivin5.com/scalatour/wiki_pages/ExplcitlyTypedSelfReferences/
trait BaseComponent {
protected var label:Label = _
}
在这种情况下,占位符_代表什么?替代方案是什么?
答案 0 :(得分:4)
变量的占位符语法将默认值赋予变量。假设Label
继承AnyRef
,那将是null
。
Scala语言规范lays this out explicitly:
4.2变量声明和定义:
变量定义
var x: T = _
只能作为模板的成员出现。它引入了一个类型为T
的可变字段和一个默认的初始值。默认值取决于类型T
,如下所示:
| default | type T |
|---------|----------------------------------|
| 0 | Int or one of its subrange types |
| 0L | Long |
| 0.0f | Float |
| 0.0d | Double |
| false | Boolean |
| () | Unit |
| null | all other types |