Ruby 中的?? 含义
Stewart Nguyen
2022年5月18日
本文将对这行代码进行澄清; prefix = root_dir.nil? ? nil : File.join(root_dir, '/')
。
prefix = root_dir.nil? ? nil : File.join(root_dir, '/')
在 Ruby 中的用法
必须澄清两点:
root_dir.nil?
? ... : ...
如果变量 root_dir
是 nil
,nil?
方法返回 true
,否则返回 false
。
初学者可能会对 ?
感到困惑。在方法名称的末尾。在编写只能返回 true
或 false
的函数时,以问号结束函数名是标准做法。
if root_dir.nil?
nil
else
File.join(root_dir, '/')
end
当我们使用 nil?
要检查变量是否为 null
,必须以问号结束函数。
这 ? ... : ...
被称为三元
运算符。它是 if/else
语句的简写。