我希望这段代码定义两个方法,nilguard
and falseguard
,它们可以防止 nil 和 false 值。
Object.class_eval do
@list = [false, nil]
@list.each do |i|
define_method :"#{i}guard" do |other|
if self == i
return other
else
return self
end
end
end
end
出于某种原因,它只定义了falseguard
,它工作正常。为什么会这样,为什么不定义另一种方法?