在Ruby中编写下一代码是否有更短的方法:
if defined?($servlet_context) then true
else false
end
答案 0 :(得分:8)
defined?
operator evaluates to a string or nil
:
defined?
运算符如果未定义其参数(可以是任意表达式),则返回nil
,否则返回该参数的描述。
所以,如果你只想要一些真实的东西,那么defined?($servlet_context)
就可以了。但是,如果你绝对必须有一个布尔值,那么你可以使用双重演员:
!!defined?($servlet_context)
答案 1 :(得分:0)
defined?($servlet_context)
将产生完全相同的效果。
此外在ruby中不需要,因此缩短它的最简单方法是 - 删除'然后'。