厨师Ohai插件创build – 创build一个新的Mash

总结 :为什么我们初始化没有等号,“=”,符号?

细节:

我已经为我们公司的具体数据编写了一个定制的Ohai插件供各种食谱使用。 这工作正常,但我不清楚创build新的饲料的过程。 在Opscode Ohai文档中 ,在“使用Mash”部分中,他们创build一个mash,如下所示

canhas Mash.new 

这工作。 但为什么不呢

 canhas = Mash.new 

所以不知何故,没有等号,“canhas”被分配一个新的混搭。 如果我包含等号,那么我的Ohai插件不起作用 – “canhas”嵌套的mash / hash项目不存在。

Ruby具有调用方法和函数的灵活(松散)语法。 这三行在一个类中是等价的:

 self.canhas(Mash.new) canhas(Mash.new) canhas Mash.new 

当你编写canhas Mash.new ,你调用了一个名为canhas的类方法,并将它作为parameter passing给Mash.new 。 另一方面,当你写canhas = Mash.new ,你正在创build一个新的局部variablescanhas ,这个variables没有被引用,完全没有任何东西。