如何制作在条件表达式中评估为false的Ruby变量

我想在条件句中使用我的变量(代理对象)评估为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 

有任何想法吗?

在Ruby中布尔上下文中唯一评估为false-ish值的两个对象是nilNilClass的单例实例和falseNilClass的单例实例。 每个其他对象评估一个tru-ish值。

如果你想要采用else分支,那么myproxy 必须评估为nilfalse

如果你想要实际控制某些boolean-ish,你可以尝试一个case表达式并覆盖case包含运算符MyProxy#===