以下的命令在 Scala 是合法的
var v = println("a") // 將 println 的 return 值,指定給 v。v 此時的值是 println("a") 的 return 值,應該是 unit value println(v = 10) // 將 v = 10 的 result 值,丟給 println 印出。傳進 println 的值為,assignment 後的值,所以應該是 Unit
第二個 statement,有一些小問題,各位應該有以下的疑問
「由 statement1, 可以推論出 v 的型態應該是 Unit,那 statement2, v = 10,將 10 設定給 Unit type 的變數 v,這是可以嗎?」
答案是,變數的型態為 Unit 時,可以接受 assignment,但值不會改變(可設定,但值沒改)。
我們看執行範例
第三個 statement 直接設定 v 的值為 100,但 v 仍是 unit value,沒有改變。
沒有留言:
張貼留言