我正在尝试在下面的示例中调用一组元素。
session_times: {
thursday: ["10:20am", "12:30pm", "6:40pm"],
friday: ["10:20am", "12:30pm", "6:40pm"],
saturday: ["10:20am", "12:30pm", "6:00pm"],
sunday: ["10:20am", "12:30pm", "6:30pm"]
}
我尝试执行以下功能
days_all = movie[:session_times]
string = ':' + 'thursday'
var1 = days_all[:thursday]
var2 = days_all["#{string}"]
var3 = days_all[string]
变量var1可以很好地显示出来,但是我不明白为什么var2或var 3不能得到我的结果,它应该与调用正确的相同变量一样出现?
帮助将不胜感激:)
不,符号和字符串之间是有区别的,它们并不总是可以互换的。符号与以冒号开头的字符串(仍然是字符串)不同。当您使用key: val
哈希语法时,键是符号。"key" => val
将是一个字符串键。
这些中的任何一个都可以工作:
string = "thursday" # don't put the colon in here
days_all[:"#{string}"]
days_all[string.to_sym]
days_all["#{string}".to_sym]
如果您安装了gemactivesupport
然后require active_support/all
(这是在rails中自动完成的),那么您对使用什么密钥的要求就不那么严格了:
days_all = days_all.with_indifferent_access
days_all["thursday"]
days_all[:thursday]
days_all.thursday
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句