$在Ruby中意味着什么?

时间:2016-04-01 03:16:42

标签: ruby

我偶然发现了Quota中的this article,看到这段代码被剪掉了。但是,我无法找到有关它的更多信息。

def Ke(x)
  "called Ke with param #{x}"
end

$ Ke 'sha'
=> "Called Ke with param sha"

$ Ke$ha
=> "Called Ke with param "

$ Ke$overwhaterver
=> "Called Ke with param "

为什么调用Ke$ha调用函数Ke(x),但它也忽略了x参数?

1 个答案:

答案 0 :(得分:4)

使用$,您可以访问全局变量。 Ruby自动添加括号。它与使用Ke($ha)Ke $ha相同。

始终可以无误地引用全局变量;它们默认为nil

$zxc # => nil
$zxc = 'asd'
$zxc # => "asd"

参数$ha不会被忽略",它是nil,而nil.to_s是一个空字符串。