摘要:为什么我们初始化没有等号、“=”、符号的新混搭?
细节:
我为我们公司的特定数据编写了一个自定义 Ohai 插件,可供各种食谱使用。这很好用,但我不清楚创建新混搭的过程。在Opscode Ohai doc的“使用混搭”部分中,他们按如下方式创建混搭
canhas Mash.new
这行得通。但为什么不是
canhas = Mash.new
所以不知何故,没有等号,“canhas”被分配了一个新的混搭。如果我包含等号,那么我的 Ohai 插件将不起作用 - “canhas”嵌套的混搭/散列项不存在。
Ruby 具有用于调用方法和函数的灵活(松散)语法。这三行在一个类中是等价的:
当您编写 时
canhas Mash.new
,您正在调用一个类方法self
并将canhas
其Mash.new
作为参数传递。另一方面,当您编写 时canhas = Mash.new
,您正在创建一个名为的新局部变量canhas
,它不会以任何方式被引用,并且什么也不做。