我正在编写关于Codeacademy的Ruby教程,并且我正在努力理解与if / else语句相关的方法参数rev=false
。 我知道它是如何工作的,但不知道它的工作原理。 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)}"
答案 0 :(得分:0)
排序顺序颠倒过来:
secondItem <=> firstItem
VS
firstItem <=> secondItem
rev = false
设置默认值,即如果您未传递第二个参数,则rev
设置为false
。
这可以写成:
def alphabetize(arr, rev=false)
if rev
arr.sort.reverse
else
arr.sort
end
end