• ruby的sort方法的重新认识


    ruby中的sort方法,这个方法可以加一个两个参数的block,这个block可以返回1 0 -1来表示这两个参数大于 等于 小于
    示例:

    str = ["192.160.175","192.160.90","192.168.2.175","192.168.2.90","192.168.1.180","192.160.90.1"]
    
    arr = str.sort do |a, b|
        ip1 = a.split('.').map &:to_i
        ip2 = b.split('.').map &:to_i
        ret = 0
        ip1.each_with_index do |ip, i|
          if ip2[i].nil?
            ret = 1
            break
          end
          if ip != ip2[i]
            ret = ip <=> ip2[i]
            break
          end
        end
        ret = ret == 0 && ip1.size > ip2.size ? 1 : ret
    end
    p arr

    输出:

    ["192.160.90","192.160.175","192.160.90.1","192.168.1.180","192.168.2.90","192.168.2.175"]

  • 相关阅读:
    selenium 难定位元素、时间插件
    列表生成式
    三元表达式
    监控日志
    非空即真
    深拷贝浅拷贝
    元组
    list字典嵌套
    2021
    布尔类型
  • 原文地址:https://www.cnblogs.com/zhangfei/p/3318697.html
Copyright © 2020-2023  润新知