如何制作在条件表达式中评估为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值的两个对象是nil
, NilClass
的单例实例和false
, NilClass
的单例实例。 每个其他对象评估一个tru-ish值。
如果你想要采用else
分支,那么myproxy
必须评估为nil
或false
。
如果你想要实际控制某些boolean-ish,你可以尝试一个case
表达式并覆盖case包含运算符MyProxy#===
。