2010-01-28 16 views
4

我想讓我的變量(代理對象)在條件句子中使用時計算爲false。我知道我可以使用.nil?甚至var ==零,但我認爲這不夠好。我正在嘗試去做的是:如何使Ruby變量在條件表達式中計算爲false

if myproxy # not only myprroxy.nil? or myproxy == nil, but just that 
    # myproxy's backend object is not nil 
else 
    # myproxy's backend object is nil 
end 

任何想法?

回答

4

評估爲在紅寶石布爾上下文假十歲上下的值只有兩個對象是nilNilClassfalse單個實例中,FalseClass的單一實例。 每個其他對象評估爲真實值。

如果希望採取else分支,然後myproxy必須取值爲nilfalse

如果你想要一些你可以實際控制的boolean-ish,你可以試試case表達式並覆蓋case包含操作符MyProxy#===

+0

所以休伯特,無論'myproxy = nil'或'myproxy = false'都應該滿足你。 – 2010-01-28 16:27:03

相關問題