Scala占位符_变量

时间:2017-01-31 13:16:23

标签: scala

我正在从这个网站学习 http://naildrivin5.com/scalatour/wiki_pages/ExplcitlyTypedSelfReferences/

trait BaseComponent {
    protected var label:Label = _
}

在这种情况下,占位符_代表什么?替代方案是什么?

1 个答案:

答案 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                  |