Ruby 中的?? 含义

Stewart Nguyen 2022年5月18日
Ruby 中的?? 含义

本文将对这行代码进行澄清; prefix = root_dir.nil? ? nil : File.join(root_dir, '/')

prefix = root_dir.nil? ? nil : File.join(root_dir, '/') 在 Ruby 中的用法

必须澄清两点:

  • root_dir.nil?
  • ? ... : ...

如果变量 root_dirnilnil? 方法返回 true,否则返回 false

初学者可能会对 ? 感到困惑。在方法名称的末尾。在编写只能返回 truefalse 的函数时,以问号结束函数名是标准做法。

if root_dir.nil?
  nil
else
  File.join(root_dir, '/')
end

当我们使用 nil? 要检查变量是否为 null,必须以问号结束函数。

? ... : ... 被称为三元运算符。它是 if/else 语句的简写。

相关文章 - Ruby Operator