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