zoukankan      html  css  js  c++  java
  • 【iOS】swift 排序Sort函数用法(包含NSDictionary排序)

    用了几分钟做的简单翻译

    一个例子

    直接贴代码,不过多解释

    //这是我们的model
    class imageFile  {
        var fileName = String()
        var fileID = Int()
    }
    //使用
    var images : [imageFile] = []
    images.sort({ $0.fileID > $1.fileID })

    下面是闭包的进阶使用

    // 一般的代码形式
    images.sort({ (image1: imageFile, image2: imageFile) -> Bool in return image1.fileID > image2.fileID })
    
    // 省略(->)的形式
    images.sort({ image1, image2 in return image1.fileID > image2.fileID })
    
    // 去掉return的简单闭包形式
    images.sort({ image1, image2 in image1.fileID > image2.fileID })
    
    // 隐藏参数的形式
    images.sort({ $0.fileID > $1.fileID })
    
    // 以下结果都是相同,只是书写形式不同
    images = images.sorted({ (image1: imageFile, image2: imageFile) -> Bool in return image1.fileID > image2.fileID })
    images = images.sorted({ image1, image2 in return image1.fileID > image2.fileID })
    images = images.sorted({ image1, image2 in image1.fileID > image2.fileID })
    images = images.sorted({ $0.fileID > $1.fileID })
    //swift标准库
    sort(&images, { (image1: imageFile, image2: imageFile) -> Bool in return image1.fileID > image2.fileID })
    sort(&images, { image1, image2 in return image1.fileID > image2.fileID })
    sort(&images, { image1, image2 in image1.fileID > image2.fileID })
    sort(&images, { $0.fileID > $1.fileID })
    
    //使用方法
    images = sorted(images, { (image1: imageFile, image2: imageFile) -> Bool in return image1.fileID > image2.fileID })
    images = sorted(images, { image1, image2 in return image1.fileID > image2.fileID })
    images = sorted(images, { image1, image2 in image1.fileID > image2.fileID })
    images = sorted(images, { $0.fileID > $1.fileID })
    let dictionary = [
        "A" : [1, 2],
        "Z" : [3, 4],
        "D" : [5, 6]
    ]

    NSDictionary根据key排序

    let sortedKeys = Array(dictionary.keys).sorted(<) // ["A", "D", "Z"]
    let sortedKeysAndValues = sorted(dictionary) { $0.0 < $1.0 }
    println(sortedKeysAndValues) // [(A, [1, 2]), (D, [5, 6]), (Z, [3, 4])]
  • 相关阅读:
    IntelliJ IDEA导包快捷键
    maven命令创建web骨架项目
    v2.0版本小程序开发心得(代码之外)
    装饰器模式
    闭包
    git diff的文字说明
    WSGI和CGI
    word-wrap、white-space和word break的区别
    Javascript中正则的 match、test、exec使用方法和区别
    Git 内部原理
  • 原文地址:https://www.cnblogs.com/melons/p/5791988.html
Copyright © 2011-2022 走看看