[問題] 用 to_sym 還是 intern 還有 Hash

作者: putumaxally (putumaxally)   2014-11-20 13:46:07
最近在 Codecademy 學 Ruby,他說 to_sym 跟 intern 都可以把 String 轉成
Symbol。
我想問一下,intern 是否有什麼特別的意義,還有在寫程式時用哪個比較好呢
我在網路上查了一下,只知道好像其中一個是另一個的 alias,不知道在使用
上是不是有不同的意思呢?
還有新版的 Ruby 是不是增加了 Hash 的語法
new_hash = {
symbol1: "abc",
symbol2: 123,
symbol3: false
}
old_hash = {
:symbol1 => "abc",
:symbol2 => 123,
:symbol3 => false
}
我應該用新版的還是舊版的呢?
作者: kusoayan (Bert)   2014-11-20 14:07:00
alias 就是都一樣的意思,就像 map & collect 是一樣的選擇的話,我個人習慣是用比較符合「當前語義」的那一個hash syntax 的話其實沒差,但是我覺得新版的比較好看
作者: mars90226 (火星人)   2014-11-20 19:17:00
不懂的話其實也沒差,就用你喜歡的XDhash新版的語法只有在key是symbol才能用所以遇到這情況用新版,其他用舊版即可新版好處在於,跟其他語言的hash語法類似,比較容易懂
作者: tonytonyjan (南洋大兜蟲)   2014-11-20 19:33:00
mars, 所以這時 old_hash[:symbol1] 會有東西嗎?
作者: mars90226 (火星人)   2014-11-20 19:48:00
會阿,新舊語法的取得都是用hash[:symbol]
作者: tonytonyjan (南洋大兜蟲)   2014-11-20 19:56:00
沒事,剛誤會「只有在key是symbol」的意思了

Links booklink

Contact Us: admin [ a t ] ucptt.com