我是Chef的新手,我看到有人这样做:node[:abc][:def]
有时node['abc']['def']
。我只是不知道差异,甚至认为我认为它是相同的。最佳实践,我应该使用哪一个?
由于
答案 0 :(得分:2)
在Ruby中,:thing
是符号。 'thing'
是一个字符串。他们的行为有细微差别。我在这个主题上找到的最好的资源是this article。
一般来说,这是一个偏好问题。它实际上是used to be a rule in Foodcritic,但是存在很多争用,它被删除了。在引擎盖下,Chef实际上使用了Mash,因此无论你使用什么都没关系。这真的是一个偏好的问题。
唯一需要注意的是插值。虽然可以使用符号进行插值,但它不常见。出于这个原因,您经常会将字符串视为更常见的关键选择。