我想在条件句中使用时将我的变量(代理对象)评估为false。我知道我可以用.nil?甚至var == nil但我认为这还不够好。我正在尝试做的是:
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
有什么想法吗?
答案 0 :(得分:4)
在Ruby中布尔上下文中唯一评估为false-ish值的两个对象是nil
,NilClass
和false
的单例实例,FalseClass
的单例实例1}}。 每个其他对象的计算结果为真值。
如果您希望采用else
分支,那么myproxy
必须评估为nil
或false
。
如果你想要实际控制某个boolean-ish,你可以尝试case
表达式并覆盖case subsumption operator MyProxy#===
。