sort 和 sort!的区别

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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值