[问题] 用 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