2011年4月29日 星期五

3-9. Assignment的 result 值

之前說到,在 Scala 中每個 statement 都有 result 值,這也包含 assignment。
但請注意,Scala中,assignment 的 result 型態是 Unit型態,result value 為 unit value,並非是右值(right-hand-side value),這與一般人的想像不同,請小心。

請看下例


第一個指令宣告變數 n。
第二個指令,使用 assignment 設定 n=20,並印出 result 值。由 output 可以看到 result 值為 (),是Unit type。

我們可能犯以下的錯誤,連續的 variable assignment,誤以為值會傳遞過來。如:
n1 = n2 = 100
上面的指令,我們可能會以為n1, n2 的值都會是 100,其實不是,n1 會被設定為 ()。

我們看實際的案例

沒有留言:

張貼留言