美元在Ruby中是什么意思?
我无意中发现了配额,看到这个代码被剪掉了。然而,我找不到太多关于它的信息美元在Ruby中是什么意思?,ruby,Ruby,我无意中发现了配额,看到这个代码被剪掉了。然而,我找不到太多关于它的信息 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参数?使用$可
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
参数?使用$
可以访问全局变量。Ruby会自动添加括号。这与使用Ke($ha)
或Ke$ha
相同
全局变量总是可以被引用而没有错误;它们默认为nil
:
$zxc # => nil
$zxc = 'asd'
$zxc # => "asd"
参数
$ha
没有被“忽略”,它是nil
,而nil.to_s
是一个空字符串。很确定以前有人问过类似的问题,但堆栈溢出似乎使搜索$
变得不可能_@是的,看起来是这样。也许这就是否决票的原因?为什么我们不需要在Ke
和$ha
之间留出空间呢?@Azuan Ruby的解析器非常灵活。由于$
只能出现在全局变量的开头,因此它“知道”一个新的令牌开始。与未初始化的实例变量相同:Ke@x#=>零