Ruby和Chef在哈希中的区别

时间:2016-09-22 12:07:45

标签: ruby hash chef

我已经在ruby中编程了一段时间,并且已经听说使用符号来访问散列中的值是一种更好的实践"而不是使用字符串,例如

default[:key] = value 
  over 
default['key'] = value

我一直在做一个厨师项目,并注意到厨师烹饪书使用第二种方式来访问哈希值(通过字符串)。通常通过符号替代方法访问不起作用!

所以我想我的问题是两部分,我应该停止使用符号并在任何地方使用字符串访问器吗?为什么符号的使用不起作用?

1 个答案:

答案 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] ] }]; 但此方法已弃用,将在短期到中期删除。