web-dev-qa-db-ja.com

Scalaでは、 'val a:A = _'(アンダースコア)はどういう意味ですか?

正確にval a: A = _値を初期化しますか?これは型付きnullですか?ありがとう。

115
Gregor Scheidt

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
0L Tが長い場合、
0.0f Tがフロートの場合、
0.0d TがDoubleの場合、
Tがブール値の場合はfalse、
()Tが単位の場合、
他のすべてのタイプTの場合はnull.

132
Paul Butcher

aをタイプAのデフォルト値に初期化します。たとえば、Intのデフォルト値は0であり、参照タイプのデフォルト値はnullです。

30
Chuck