回答:
val a: A = _
コンパイルエラーです。例えば:
scala> val a: String = _
<console>:1: error: unbound placeholder parameter
val a: String = _
^
機能するのはvar a: A = _
(のvar
代わりに注意val
)です。チャックが彼の答えで言うように、これは変数をデフォルト値に初期化します。Scala言語仕様から:
TがIntまたはそのサブ範囲タイプの1つである場合は0、Tが
Longである場合は0L、Tが
Floatである
場合は0.0f、TがDoubleで
ある場合は0.0d 、Tがブール値である場合はfalse、
()TがUnitである場合は、
他のすべてのタイプではnull T.
val
ますか?
val a: Int = _
うまくいったら悪い習慣になるため、おそらくコンパイルエラーです。それは単に難読化された書き方val a: Int = 0
です。var
a var
は変更されることが予想されるため、aをデフォルト値に設定することには意味がありますが、a val
は固定されているため、値を明示的に割り当てることをお勧めします。
a
タイプのデフォルト値に初期化されますA
。たとえば、Intのデフォルト値は0で、参照型のデフォルト値はnullです。
NotNull
特性に混在するクラスのデフォルト値は何ですか?:-)
_
切り札のようNotNull
です。