zoukankan      html  css  js  c++  java
  • Swift

    //: Playground - noun: a place where people can play
    
    import UIKit
    
    // 初始化一个整数数组
    var arr = [1, 3, 5, 7, 8, 10, 12, 2, 0, 11, 9]
    // 排序, 默认是从小到大排序
    arr.sort()
    // 通过闭包, 自定义排序方法
    arr.sort({(a: Int, b: Int) -> Bool in
        return a > b
    })
    
    arr = [1, 3, 5, 7, 8, 10, 12, 2, 0, 11, 9]
    arr.sort()
    // 使用闭包简化语法:由于swift能智能识别到闭包中参数类型和返回值类型
    // 在定义闭包的时候, 可以简化成:
    arr = arr.sort({(a, b) in return a > b })
    arr
    
    arr = [1, 3, 5, 7, 8, 10, 12, 2, 0, 11, 9]
    // 在闭包中, return是可以省略的(仅限在函数体只有一句话的时候)
    // 因此定义闭包的时候, 可以简化成:
    arr = arr.sort({(a, b) in a > b})
    arr
    
    arr = [1, 3, 5, 7, 8, 10, 12, 2, 0, 11, 9]
    // 另外, 在闭包中如果有内部参数, 闭包默认也会给它们参数名
    // 格式为: $1 $2 分别代表第一个参数和第二个参数, 以此类推
    // 跟着, in也就跟着省略了...
    // 因此定义闭包的时候, 可以简化成:
    arr = arr.sort({return $0 > $1})    // 这里return一样可以省略
    arr
    
    // 对上一节练习的简化:
    var arr2 = ["aa", "b", "bb", "abcd", "aabbcc", "cdefg", "a", "c"]
    arr2.sort({
        let string1Length = $0.characters.count
        let string2Lenght = $1.characters.count
        
        if string1Length != string2Lenght { // 长度不相等
            return string1Length < string2Lenght
        } else {                            // 长度相等
            return $0 < $1
        }
    })
    
    // 接下来出大招了..
    // 针对上面只是简单的比较两个整数的大小
    // 可以简化成下面的样子:
    arr = [1, 3, 5, 7, 8, 10, 12, 2, 0, 11, 9]
    arr = arr.sort(>)   // 因为">"本身就是一个函数..
    

      

  • 相关阅读:
    网页CSS2
    C#(1)—类型、常量及变量
    进制转化
    12月26日提纲
    12月24日笔记
    12月23日笔记
    12月22日笔记
    12月21日笔记
    12月20日笔记
    break、continue与数组
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5173070.html
Copyright © 2011-2022 走看看