Chef Ohai 插件创建 - 创建新的 Mash

Chef Ohai 插件创建 - 创建新的 Mash

概括:为什么我们在初始化新的混合时不使用等号“=”?

细节:

我编写了一个自定义 Ohai 插件,用于我们公司的特定数据,供各种食谱使用。这很好用,但我不清楚创建新麦芽浆的过程。在Opscode Ohai 文档在“使用土豆泥”部分,他们制作了如下土豆泥

canhas Mash.new

这有效。但为什么不呢

canhas = Mash.new

因此,不知何故,没有等号,“canhas”被分配了一个新的混音。如果我包括等号,那么我的 Ohai 插件将不起作用 - “canhas”嵌套混音/哈希项不存在。

答案1

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

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

当您编写 时canhas Mash.new,您正在调用selfcalled上的类方法canhas并将其Mash.new作为参数传递。另一方面,当您编写 时canhas = Mash.new,您正在创建一个新的局部变量,canhas该变量未以任何方式引用,并且不执行任何操作。

相关内容