1
tmrQAQ 2020-06-16 11:56:10 +08:00 1
y.to_sym
|
2
echohn 2020-08-08 01:19:47 +08:00
这里玩 Ruby 的太少了,有问题还是去 ruby-china 问吧。
而你的问题本身描述是有问题的。 在 Ruby 里,Hash 的标准初始化方式是 `=>`, 适用于一切 key 的类型;而 `:` 的语法,是 Ruby 1.9 版本之后,仅适用于 key 是 Symbol 的情况,而且会隐含将 key 转换为 Symbol 的操作。 也就是说,如果你想在使用中,你的 key 是字符串,应该定义为 `x = {'a' => 1, 'b' => 2}`。 而题目中通过`:`的定义方式,key 的类型已经转换为 Symbol,是 :b,所以在 x['b'] 的时候并没有取到值。 回到问题, 能转换的。 ```ruby 'a'.to_sym # => :a :a.to_s # => 'a' ``` |
3
doublechenpaul 2021-05-17 14:28:57 +08:00
在 rails 里,可以
x.with_indifferent_access |