私は Codeacademy の Ruby チュートリアルに取り組んでいますrev=false
が、if/else ステートメントに関連するメソッド パラメーターを理解するのに苦労しています。私はそれがどのように機能するかを知っていますが、なぜ機能するのかはわかりません。Codeacademy の説明は私を混乱させているので、ここに投稿しています。
これが逆に印刷されるのはなぜですか?puts "Z-A: #{alphabetize(books, true)}"
との関係はrev=false)
?
def alphabetize(arr, rev=false)
if rev
arr.sort { |firstItem, secondItem|
secondItem <=> firstItem }
else
arr.sort { |firstItem, secondItem|
firstItem <=> secondItem }
end
end
books = ["Heart of Darkness", "Code Complete", "The Lorax", "The Prophet", "Absalom, Absalom!"]
puts "A-Z: #{(books)}"
puts "Z-A: #{alphabetize(books, true)}"