2015-03-31 42 views

回答

2

這不聲明一個變量名爲1

val 1 = ONE 

它能做什麼,而不是爲模式匹配 - 其結果是沒有用的。

試試這個,你會得到一個模式匹配錯誤:在斯卡拉

def ONE = 2 
val 1 = ONE 

變量不能有隻包含數字的名稱,或以數字開頭。您無法聲明名稱爲1的變量。

+0

但是我也可以寫'var 1 = ONE'。這是一個誤導性的語法。 – barbara 2015-03-31 18:25:04

+1

與'val 1 = ONE'(模式匹配,沒有聲明變量)的作用相同。 – Jesper 2015-03-31 18:26:28

+0

這很有趣。 – barbara 2015-03-31 18:31:49

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