我已经在ruby中编程了一段时间,并且已经听说使用符号来访问散列中的值是一种更好的实践"而不是使用字符串,例如
default[:key] = value
over
default['key'] = value
我一直在做一个厨师项目,并注意到厨师烹饪书使用第二种方式来访问哈希值(通过字符串)。通常通过符号替代方法访问不起作用!
所以我想我的问题是两部分,我应该停止使用符号并在任何地方使用字符串访问器吗?为什么符号的使用不起作用?
答案 0 :(得分:4)
T.L; D.R。尽管仍在使用中,但不鼓励使用符号来访问字符串。
在食品杂志(linter)问题中引用厨师lamont granquist here
Mashes的Chef实现将内部的所有符号转换为 字符串
官方recommendation in docs将使用字符串。
要完成Chef属性概述,您还可以将它们作为实例方法访问,即。 let data = [{
"name": "< 100 MB",
"type": "column",
"data": [
[Date.UTC(2013, 7, 1), 2],
[Date.UTC(2013, 7, 2), 3],
[Date.UTC(2013, 7, 3), 3],
[Date.UTC(2013, 7, 4), 2],
[Date.UTC(2013, 7, 5), 1]
]
}, {
"name": "< 10 MB",
"type": "column",
"data": [
[Date.UTC(2013, 7, 1), 3],
[Date.UTC(2013, 7, 2), 3],
[Date.UTC(2013, 7, 3), 2],
[Date.UTC(2013, 7, 4), 4],
[Date.UTC(2013, 7, 5), 10]
]
}, {
"name": "< 1 MB",
"type": "column",
"data": [
[Date.UTC(2013, 7, 1), 2],
[Date.UTC(2013, 7, 2), 3],
[Date.UTC(2013, 7, 3), 2],
[Date.UTC(2013, 7, 4), 3],
[Date.UTC(2013, 7, 5), 5]
]
}];
但此方法已弃用,将在短期到中期删除。