在 Scala 中,'val a: A = _'(下划线)到底是什么意思? [英] In Scala, what exactly does 'val a: A = _' (underscore) mean?

查看:38
本文介绍了在 Scala 中,'val a: A = _'(下划线)到底是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

val a: A = _ 究竟将一个值初始化为什么?这是一个类型化的空值吗?谢谢.

What exactly does val a: A = _ initialize a value to? Is this a typed null? Thanks.

推荐答案

val a: A = _ 是编译错误.例如:

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

有效的是var a: A = _(注意var 而不是val).正如查克在他的回答中所说,这会将变量初始化为默认值.来自 Scala 语言规范:

What does work is var a: A = _ (note var instead of val). As Chuck says in his answer, this initialises the variable to a default value. From the Scala Language Specification:

0 如果 T 是 Int 或其子范围类型之一,
0L 如果 T 是 Long,
0.0f 如果 T 是浮动的,
0.0d 如果 T 是 Double,
如果 T 是布尔值,则为 false,
() 如果 T 是单位,
对于所有其他类型 T,为 null.

0 if T is Int or one of its subrange types,
0L if T is Long,
0.0f if T is Float,
0.0d if T is Double,
false if T is Boolean,
() if T is Unit,
null for all other types T.

这篇关于在 Scala 中,'val a: A = _'(下划线)到底是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆