Scala:如何访问我声明的val?

时间:2015-03-31 18:19:26

标签: scala

如果我声明val 1如何在不更改名称val 1的情况下访问它?

val 1 = ONE
def ONE = 1

print(1) // `1` should be a reference to ONE which I declared above.

2 个答案:

答案 0 :(得分:2)

这不会声明名为1的变量:

val 1 = ONE

它的作用是模式匹配 - 结果没用。

试试这个,你会得到一个模式匹配错误:

def ONE = 2
val 1 = ONE

Scala中的变量不能包含仅由数字组成的名称,也不能包含以数字开头的名称。您不能声明名为1的变量。

答案 1 :(得分:0)

Jesper一样说它是模式匹配。请考虑与您的代码类似的代码:

def ONE_AND_TWO = (1, 2)
val (1, b) = ONE_AND_TWO
println(b) // prints 2
val (2, _) = ONE_AND_TWO //scala.MatchError: (1,2) (of class scala.Tuple2$mcII$sp)

在你的情况下,你只有单个值而不是元组。但是,如果您希望将变量,值或函数命名为尽可能接近1,则可以使用:

def `1` = ONE