今晚我正在玩 FizzBu??zz 編程練習,嘗試不同的撰寫解決方案的方法。
我寫的一行是:
nf = !((ff = i % 3 == 0) || (bf = i % 5 == 0))
nf 是“無標志”
ff 是“嘶嘶聲”
bf 是“嗡嗡聲”
現在我知道這是一種可怕的風格 - 我對原始問題有更好的解決方案 - 但這個也不起作用,因為 Ruby 對 || 的懶惰評估 運算式意味著如果 i 是 3 的倍數,則 ff 設定為 true 并且 bf 保留為 nil (盡管它被定義是因為它發生在評估之前)。
我一直在尋找但沒有成功的方法是讓 Ruby 評估 || 的雙方 (或其他運算子)以便所有三個標志都獲得正確的值。
有沒有辦法在 Ruby 中做到這一點?
uj5u.com熱心網友回復:
也許您正在尋找不會短路的|and&運算子。
例如:
irb(main):007:0> true | (puts "hello")
hello
=> true
irb(main):008:0>
TrueClass 的檔案在這里。存在相同的方法FalseClass。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/396591.html
上一篇:我無法運行腳本并創建虛擬環境
