如果我声明val 1
如何在不更改名称val 1
的情况下访问它?
val 1 = ONE
def ONE = 1
print(1) // `1` should be a reference to ONE which I declared above.
答案 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