从Ruby的官方文档:“排序”和“排序!”有什么区别?方法在红宝石?
排序→new_ary排序{| A,B |块}→new_ary返回通过排序创建的新数组 。
比较将使用< =>运算符或使用 可选代码块进行。
该块必须实现a和b之间的比较,并返回-1, ,当a和b相等时,或者如果b跟随a,则返回+1。
另请参阅可枚举#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"]
排序!→点击切换源排序! {| a,b |块}→ary排序 自己到位。
比较将使用< =>运算符或使用 可选代码块进行。
该块必须实现a和b之间的比较,并返回-1, ,当a和b相等时,或者如果b跟随a,则返回+1。
另请参阅可枚举#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' **返回排序自创建一个新的数组**而'排序!'**排序到位自**,它是写您发布的文件... – toro2k
是,尼尔在这是一个可能的重复问题。我不知道这一点,但因为我是Ruby的新手。抱歉。假设我这次是无辜的:) – Fabio
这是来自近距离投票的自动化信息。完全没有问题,大多数封闭问题都是真诚地提出的。但是对于SO的正确结果是,这个问题应该被关闭,除非由于问答的措辞而引起每个人的想象力,然后得到足够的选票,它就成为了新问题的最佳版本。 –