看板 Ruby 關於我們 聯絡資訊
最近在 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://www.ptt.cc/bbs/Ruby/M.1416462369.A.704.html ※ 編輯: putumaxally (140.118.147.97), 11/20/2014 14:04:05
kusoayan: alias 就是都一樣的意思,就像 map & collect 是一樣的 11/20 14:07
kusoayan: 選擇的話,我個人習慣是用比較符合「當前語義」的那一個 11/20 14:07
kusoayan: hash syntax 的話其實沒差,但是我覺得新版的比較好看 11/20 14:07
看語意的話我不知道什麼時候會用到 intern,其實我也不懂這個字的意思... 小弟是初學者,我知道 alias 是別名的意思,不過 map 跟 collect 就沒看過了 ※ 編輯: putumaxally (140.118.147.97), 11/20/2014 14:53:33
mars90226: 不懂的話其實也沒差,就用你喜歡的XD 11/20 19:17
mars90226: hash新版的語法只有在key是symbol才能用 11/20 19:18
mars90226: 所以遇到這情況用新版,其他用舊版即可 11/20 19:18
mars90226: 新版好處在於,跟其他語言的hash語法類似,比較容易懂 11/20 19:18
tonytonyjan: mars, 所以這時 old_hash[:symbol1] 會有東西嗎? 11/20 19:33
mars90226: 會阿,新舊語法的取得都是用hash[:symbol] 11/20 19:48
tonytonyjan: 沒事,剛誤會「只有在key是symbol」的意思了 11/20 19:56
恩恩 感謝大大們的解答 ※ 編輯: putumaxally (175.180.71.122), 11/21/2014 04:03:29