2012-03-12 92 views

回答

1

尝试使用定义?

if defined?(your variable) 
    do something 
else 
    do something else 
end 

如果变量定义,你会收到的那种变量的字符串,另有界定?将返回零。当心定义?(零)将返回字符串“零”,而不是价值零。

还有做“如果没有定义这样做”一个类似于一个非常红宝石惯用的方式,这是

x ||= something 

简单的例子:

$ irb 
>> x = 1 
=> 1 
>> x 
=> 1 
>> defined? x 
=> "local-variable" 
>> defined? y 
=> nil 
>> y ||= 42 
=> 42 
>> defined? y 
=> "local-variable" 
>> z = 3 
=> 3 
>> z ||= 43 
=> 3 
>> defined? nil 
=> "nil" 
>> 
相关问题