sort方法用于数组排序,返回排序后的新数组(排序的比较用 <=> 运算符)
a = [“d”, “a”, “e”, “c”, “b”]
b = [ 6, 3, 5, 2, 7 ]
a.sort => [“a”, “b”, “c”, “d”, “e”]
a.sort { |x,y| y <=> x } => [“e”, “d”, “c”, “b”, “a”]
a.sort { |x,y| x <=> y } => [“a”, “b”, “c”, “d”, “e”]
b.sort => [2, 3, 5, 6, 7]
b.sort { |x,y| y <=> x } => [7, 6, 5, 3, 2]
b.sort { |x,y| x <=> y } => [2, 3, 5, 6, 7]
sort! 和 sort 效果一样,默认都使用 <=>比较,他们的区别在于:
sort! 可能会改变原先的数组,所以加个感叹号提醒;
sort 返回的是新数组,没对原先的数组进行修改;
在ruby中有很多加了感叹号的函数,这意味着对函数操作的对象进行了状态更改。
a.sort! => [“a”, “b”, “c”, “d”, “e”]
b.sort! => [2, 3, 5, 6, 7]
a => [“a”, “b”, “c”, “d”, “e”]
b => [2, 3, 5, 6, 7]