作者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/cn.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