【发布时间】:2013-11-11 05:30:57
【问题描述】:
来自 Ruby 的官方文档:
排序 → new_ary sort { |a, b| block } → new_ary 返回一个新数组 通过自我排序创建。
排序的比较将使用 运算符或使用 一个可选的代码块。
该块必须实现a和b之间的比较,并返回-1, 当 a 跟在 b 之后,当 a 和 b 相等时为 0,如果 b 跟在 a 之后,则 +1。
另请参见 Enumerable#sort_by。
a = [ "d", "a", "e", "c", "b" ]
a.sort #=> ["a", "b", "c", "d", "e"]
a.sort { |x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
排序! → ary 点击切换源排序! { |a, b|块 } → ary 排序 自我到位。
排序的比较将使用 运算符或使用 一个可选的代码块。
该块必须实现a和b之间的比较,并返回-1, 当 a 跟在 b 之后,当 a 和 b 相等时为 0,如果 b 跟在 a 之后,则 +1。
另请参见 Enumerable#sort_by。
a = [ "d", "a", "e", "c", "b" ]
a.sort! #=> ["a", "b", "c", "d", "e"]
a.sort! { |x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
结果好像一样,那有什么区别呢?
【问题讨论】:
-
sort返回一个通过排序self创建的新数组 而sort!对self进行排序,它写在你发布的文档中... -
是的,尼尔,这可能是该问题的重复。我没有意识到这一点,因为我是 Ruby 的新手。对不起。假设我这次是无辜的:)
-
这是来自接近投票的自动消息。完全没有问题,大多数封闭式问题都是真诚地提出的。但是 SO 的正确结果是这个问题应该被关闭,除非它可能由于问题和答案的措辞引起了每个人的想象,然后获得了足够的选票,它成为问题的 新 最佳版本。
-
是的,我同意。感谢您对 SO 的贡献。
标签: ruby-on-rails ruby sorting