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])]
  • 相关阅读:
    jenkins中通过Publish Over SSH将项目部署到远程机器上
    GitHub 开源的 MySQL 在线更改 Schema 工具【转】
    MySQL ProxySQL读写分离实践
    MySQL ProxySQL读写分离使用初探
    LVS+Keepalived实现DBProxy的高可用
    Redis Codis 部署安装
    CS 和 BS 的区别和优缺点(转)
    Linux的SOCKET编程详解(转)
    数据结构-深度遍历和广度遍历(转)
    社保相关
  • 原文地址:https://www.cnblogs.com/melons/p/5791988.html
Copyright © 2011-2022 走看看