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
語句的簡寫。