博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift-Closures
阅读量:5880 次
发布时间:2019-06-19

本文共 1401 字,大约阅读时间需要 4 分钟。

  

  • Currying  柯里化
    • e.g.1
    • //返回值为  参数为Int返回值为Int的闭包func addTo(adder: Int) -> Int -> Int {     return {          num in           return num + adder           }}let addTwo = addTo(2) /* addTwo = (num: Int) -> Int {    return num + 2}*/let result =addTwo(6)

       

    • e.g.2
    • //$0 闭包默认的第一个参数func greaterThan(comparer:Int) -> Int -> Bool {        return {$0 > comparer}}let greaterThan10 = greaterThan(10)greaterThan10(12)greaterThan10(9)

       

    • e.g.3
    • func makeIterator(from start: Int, step: Int) -> () -> Int {    var i = start    return {        let currentValue = i        i += step        return currentValue    }}var iterator = makeIterator(from: 1, step: 1)iterator() // 1iterator() // 2iterator() // 3var anotherIterator = makeIterator(from: 1, step: 3)anotherIterator() // 1anotherIterator() // 4anotherIterator() // 7anotherIterator() // 10

       

  • Closures in Swift (原作者的警告⚠️:When you have a new hammer everything starts to look like a nail.)
    •   Array: Sort, Map, Filter, Reduce
      • Sort
      • var array = [3, 4, 5]array.sort(by: >) // > is defined as function// sort does not return a new array// the original array has been changed

         

      • Reduce
      • sum = array.reduce(0, {$0 + $1})// or sum = array.reduce(0, +) // operators are methods in Swift

         

      • Map
      • let array = [2, 3, 4]/// result is  [3, 4, 5]array.map{ $0 + 1}

         

      • Filter
      • let array = [2, 3, 4]let newArray = array.filter({ $0 > 3})//newArray = [4]

转载于:https://www.cnblogs.com/HackHer/p/8459043.html

你可能感兴趣的文章
DOCKER windows 7 详细安装教程
查看>>
养眼美女绿色壁纸
查看>>
U盘启动盘制作工具箱 v1.0
查看>>
增强myEclipse的提示功能
查看>>
Zabbix汉化方法
查看>>
Java I/O系统基础知识
查看>>
Java多线程设计模式(2)生产者与消费者模式
查看>>
对象并不一定都是在堆上分配内存的
查看>>
刘宇凡:罗永浩的锤子情怀只能拿去喂狗
查看>>
php晚了8小时 PHP5中的时间相差8小时的解决办法
查看>>
JS(JavaScript)的初了解7(更新中···)
查看>>
svn文件管理器的使用
查看>>
Ansible playbook 使用
查看>>
for/foreach/linq执行效率测试
查看>>
js /jquery停止事件冒泡和阻止浏览器默认事件
查看>>
长春理工大学第十四届程序设计竞赛(重现赛)I.Fate Grand Order
查看>>
好作品地址
查看>>
[翻译]Protocol Buffer 基础: C++
查看>>
runloop与线程的关系
查看>>
[Bzoj2246]迷宫探险(概率+DP)
查看>>