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

看板Ruby作者 (putumaxally)時間10年前 (2014/11/20 13:46), 10年前編輯推噓3(307)
留言10則, 3人參與, 最新討論串1/1
最近在 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

11/20 14:07, , 1F
alias 就是都一樣的意思,就像 map & collect 是一樣的
11/20 14:07, 1F

11/20 14:07, , 2F
選擇的話,我個人習慣是用比較符合「當前語義」的那一個
11/20 14:07, 2F

11/20 14:07, , 3F
hash syntax 的話其實沒差,但是我覺得新版的比較好看
11/20 14:07, 3F
看語意的話我不知道什麼時候會用到 intern,其實我也不懂這個字的意思... 小弟是初學者,我知道 alias 是別名的意思,不過 map 跟 collect 就沒看過了 ※ 編輯: putumaxally (140.118.147.97), 11/20/2014 14:53:33

11/20 19:17, , 4F
不懂的話其實也沒差,就用你喜歡的XD
11/20 19:17, 4F

11/20 19:18, , 5F
hash新版的語法只有在key是symbol才能用
11/20 19:18, 5F

11/20 19:18, , 6F
所以遇到這情況用新版,其他用舊版即可
11/20 19:18, 6F

11/20 19:18, , 7F
新版好處在於,跟其他語言的hash語法類似,比較容易懂
11/20 19:18, 7F

11/20 19:33, , 8F
mars, 所以這時 old_hash[:symbol1] 會有東西嗎?
11/20 19:33, 8F

11/20 19:48, , 9F
會阿,新舊語法的取得都是用hash[:symbol]
11/20 19:48, 9F

11/20 19:56, , 10F
沒事,剛誤會「只有在key是symbol」的意思了
11/20 19:56, 10F
恩恩 感謝大大們的解答 ※ 編輯: putumaxally (175.180.71.122), 11/21/2014 04:03:29
文章代碼(AID): #1KRO0XS4 (Ruby)
文章代碼(AID): #1KRO0XS4 (Ruby)