作者putumaxally (putumaxally)
看板Ruby
標題[問題] 用 to_sym 還是 intern 還有 Hash
時間Thu Nov 20 13:46:07 2014
最近在 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
}
我應該用新版的還是舊版的呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.118.147.97
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Ruby/M.1416462369.A.704.html
※ 編輯: putumaxally (140.118.147.97), 11/20/2014 14:04:05
1F:推 kusoayan: alias 就是都一樣的意思,就像 map & collect 是一樣的 11/20 14:07
2F:→ kusoayan: 選擇的話,我個人習慣是用比較符合「當前語義」的那一個 11/20 14:07
3F:→ kusoayan: hash syntax 的話其實沒差,但是我覺得新版的比較好看 11/20 14:07
看語意的話我不知道什麼時候會用到 intern,其實我也不懂這個字的意思...
小弟是初學者,我知道 alias 是別名的意思,不過 map 跟 collect 就沒看過了
※ 編輯: putumaxally (140.118.147.97), 11/20/2014 14:53:33
4F:推 mars90226: 不懂的話其實也沒差,就用你喜歡的XD 11/20 19:17
5F:→ mars90226: hash新版的語法只有在key是symbol才能用 11/20 19:18
6F:→ mars90226: 所以遇到這情況用新版,其他用舊版即可 11/20 19:18
7F:→ mars90226: 新版好處在於,跟其他語言的hash語法類似,比較容易懂 11/20 19:18
8F:→ tonytonyjan: mars, 所以這時 old_hash[:symbol1] 會有東西嗎? 11/20 19:33
9F:推 mars90226: 會阿,新舊語法的取得都是用hash[:symbol] 11/20 19:48
10F:→ tonytonyjan: 沒事,剛誤會「只有在key是symbol」的意思了 11/20 19:56
恩恩 感謝大大們的解答
※ 編輯: putumaxally (175.180.71.122), 11/21/2014 04:03:29