Scala では、「val a: A = _」(アンダースコア)は具体的に何を意味しますか? 質問する

Scala では、「val a: A = _」(アンダースコア)は具体的に何を意味しますか? 質問する

val a: A = _値を具体的に何に初期化するのでしょうか? これは型指定された null ですか? ありがとうございます。

ベストアンサー1

val a: A = _コンパイルエラーです。例:

scala> val a: String = _
<console>:1: error: unbound placeholder parameter
       val a: String = _
                       ^

実際に機能するのはvar a: A = _(varではなくval) です。Chuck が回答で述べているように、これは変数をデフォルト値に初期化します。Scala 言語仕様より:

T が Int またはそのサブ範囲型のいずれかの場合は 0、
T が Long の場合は 0L、
T が Float の場合は 0.0f、
T が Double の場合は 0.0d、
T が Boolean の場合は false、
T が Unit の場合は ()、
その他のすべての型 T の場合は null。

おすすめ記事