在 ruby?? 中,讓我們假設有一個變數 foo,我們給它賦值foo = nil,然后我們有這樣的代碼:
if foo
puts "foo is true"
else
puts "foo is false"
end
上面的程式將準確列印什么?
uj5u.com熱心網友回復:
通常,Ruby 開發人員不太關心變數或條件是否恰好是true或false。相反,Ruby有概念truthy和falsey值。
false和nil是假的,其他一切都是真的。
在你的例子中
if foo
puts "foo is true"
else
puts "foo is false"
end
輸出將是“foo is false”,因為它nil是falsey,因此else塊被評估。
當在控制臺中運行示例時,nil將在最后回傳,因為nil由puts方法回傳(請參閱檔案)并且 Ruby 控制臺始終回傳最后一個方法呼叫的回傳值。
uj5u.com熱心網友回復:
答案是上面的代碼將列印“foo is false”并輸出 nil。如果有人知道原因,請對此答案發表評論或發布上述問題的新答案。
所以,
if foo
puts "foo is true"
else
puts "foo is false"
end
將列印:
foo is false
=> nil
如果您使用的是 ruby?? 控制臺
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367934.html
標籤:红宝石
上一篇:給定一個散列陣列,修改每個散列以包含另一個散列的鍵值組合
下一篇:如何在ruby??中列印雙引號
