Re: [問題] 關於scala的 symbol literals

作者: brianhsu (墳墓)   2013-10-02 10:14:11
※ 引述《lingcandy (candyling)》之銘言:
: 小妹最近剛開始接觸 scala
: 在此之前 有接觸過java 但對 functional programming沒有接觸過
: 最近讀到 scala的英文教學書裡的 symbol literal 實在不是很了解
: 去爬了很多文發現他很像 ruby 裡的 symbol
: 根據自己的理解 主要的概念 就是說 symbol可以自訂identifier
: (如果也什麼錯誤或觀念需要釐清的可以指證我 謝謝~~~)
比較簡單的想法是把他想成和數值 literal 和字串 literal 是類似的東西,
例如你寫 1 的話會是整數 1,1L 會是長整數 1,"Hello World" 是一個字串一樣。
: compile:
: scala> updateRecordByName(favoriteAlbum, "OK Computer")
: <console>:6: error: not found: value favoriteAlbum
: updateRecordByName(favoriteAlbum, "OK Computer")
: Instead, and almost as concisely, you can pass a symbol literal:
: scala> updateRecordByName('favoriteAlbum, "OK Computer")
: 想請問各位大大
: 這邊有點不懂QQ 為什麼直接寫favoriteAlbum會有錯呢??
因為寫 favoriteAlbum 的話,會去找 favoriateAlbum 這個變數/函式這些,
但你沒有宣告過這個變數,自然會找不到
'favoriteAlbum 的話,則是一個型態與 Symbol 相符的常數,所以可以丟到
updateRecordByName 裡面。

Links booklink

Contact Us: admin [ a t ] ucptt.com