• ruby 数组array 排序sort 和sort!


    1.
    sort → new_ary click to toggle source
    sort { |a, b| block } → new_ary

    Returns a new array created by sorting self.

    Comparisons for the sort will be done using the <=> operator or using an optional code block.

    The block must implement a comparison between a and b, and return -1, when a follows b, 0 when a and b are equivalent, or +1 if b follows a.

    See also 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"]
    a.sort { |x,y| x <=> Y }  #=> ["a", "b", "c", "d", "e"]


    2.
    sort! → ary click to toggle source
    sort! { |a, b| block } → ary

    Sorts self in place.

    Comparisons for the sort will be done using the <=> operator or using an optional code block.

    The block must implement a comparison between a and b, and return -1, when a follows b, 0 when a and b are equivalent, or +1 if b follows a.

    See also 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"]

    参考链接:http://www.ruby-doc.org/core-2.0/Array.html#method-i-sort

    3.sort和sort!的区别:

    sort和sort!函数,默认都使用 <=>比较,他们的区别在于:
    sort! 可能会改变原先的数组,所以加个感叹号提醒
    sort 返回的是新数组,没对原先的数组进行修改
    在ruby的SDK里,能看到很多加了感叹号的函数,都意味着对函数操作的对象进行了状态更改。

  • 相关阅读:
    设计模式-11-代理模式
    设计模式-10-装饰者
    设计模式-9-组合
    设计模式-8-适配器
    设计模式-7-原型模式
    设计模式-6-建造者
    设计模式-5-单例模式
    u-boot-1.1.6 设置新分区支持设备树
    u-boot-2014.10移植(8)重定位,支持NAND启动
    u-boot-2014.10移植(7)修改环境变量的存储位置
  • 原文地址:https://www.cnblogs.com/dami520/p/3222674.html
Copyright © 2020-2023  润新知