在Scala中,'val a:A = _'(下划线)究竟是什么意思?

时间:2011-12-01 04:45:00

标签: scala initialization

val a: A = _将值初始化为什么?这是一个打字的空吗?感谢。

2 个答案:

答案 0 :(得分:125)

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为长,则为0L,
  0.0f如果T是Float,
  如果T为Double,则为0.0d,
  如果T是布尔值,则为假,
  ()如果T是单位,
  对于所有其他类型为T。

答案 1 :(得分:29)

它将a初始化为类型A的默认值。例如,Int的默认值为0,引用类型的默认值为null。