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

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

问题描述

val a: A = _ 究竟将值初始化为什么?这是键入的 null 吗?谢谢.

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).正如 Chuck 在他的回答中所说,这会将变量初始化为默认值.来自 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 或其子范围类型之一,
如果 T 很长,则为 0L,
0.0f 如果 T 是浮点数,
如果 T 为 Double,则为 0.0d,
如果 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天全站免登陆