//: Playground - noun: a place where people can play

 import UIKit

 var str = "Hello, playground"

 /// 使用map函数,进行数组内部数据的转换,map中接受一个转换函数
 ,,,,]
  * })
 print(newArray)

  /// 使用reduce 函数 求和
 , combine: +)
 print(sum)

 /// 使用 filter来验证tweet中是否包含选定的若干关键字中的一个
 let words = ["Swift","iOS","cocoa","OSX","tvOS"]
 let tweet = "This is an example tweet larking about Swift"
 let valid = !words.filter({tweet.containsString($)}).isEmpty
 print(valid)

 let valid1 = words.contains(tweet.containsString)
 print(valid1)

 let valid2 = tweet.characters.split(" ").lazy.map(String.init).contains(Set(words).contains)
 print(valid2)

  /// 使用split map 分隔内容
 let text = "窗前明月光 疑是地上霜 举头望明月 低头思故乡"
 let lines = text.characters.split(" ").map(String.init)
 print(lines[])
 print(lines[])
 print(lines[])
 print(lines[])

 /// 使用forEach 高阶函数便利
 let name = "urai"
 (...).forEach({print( == ) ? "dear \(name)":"to You"))})
 (...).forEach{print( == ) ? "dear \(name)":"to You"))}

 // MARK: - 查找数组中符合条件的数据
 extension SequenceType {

     typealias Element = Self.Generator.Element

     func partitionBy(fu: (Element) -> Bool) -> ([Element],[Element]) {

         var first = [Element]()
         var second = [Element]()

         for el in self {

             if fu(el) {

                 first.append(el)
             }
             else {

                 second.append(el)
             }
         }
         return (first,second)
     }
 }

 let part = [, , , , , ].partitionBy{$ < }
 print(part)

 // MARK: - 一种更简介的查找方式
 extension SequenceType {

     func anotherpartitionBy(fu: (Self.Generator.Element) -> Bool) -> ([Self.Generator.Element],[Self.Generator.Element]) {

         )}))
     }
 }

 let part1 = [, , , , , ].anotherpartitionBy{$ < }
 print(part1)

 /// 使用的是分区元组,但效率不如上边的高
 , , , , , ].reduce( ([],[]), combine: {
     (a:([Int],[Int]),n:Int) -> ([Int],[Int]) in
     (n<) ? (a.+[n],a.) : (a.,a.+[n])
 })
 print(part2)

代码

swift 的高阶函数的使用代码的更多相关文章

  1. 高阶函数简述 js

    1.简述 高阶函数似乎是一种先进编程的的技术.然而,并不是. 高阶函数其实就是将函数作为参数或者返回值的函数.其中作为参数的函数一般是回调函数. 2.例子 (1)最简单的例子 大家都熟悉数组的sort ...

  2. Javascript中的高阶函数介绍

    高阶函数:高阶看上去就像是一种先进的编程技术的一个深奥术语,一开始我看到的时候我也这样认为的. Javascript的高阶函数 然而,高阶函数只是将函数作为参数或返回值的函数.以下面的Hello,Wo ...

  3. Swift 烧脑体操(三) - 高阶函数

    前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说更加困 ...

  4. Swift 中的高阶函数和函数嵌套

    高阶函数 在Swift中,函数可做为“一等公民”的存在,也就意味着,我们可以和使用 int 以及 String 一样,将函数当做 参数.值.类型来使用. 其中,将函数当作一个参数和值来使用可见下: t ...

  5. c#语言-高阶函数

    介绍 如果说函数是程序中的基本模块,代码段,那高阶函数就是函数的高阶(级)版本,其基本定义如下: 函数自身接受一个或多个函数作为输入. 函数自身能输出一个函数,即函数生产函数. 满足其中一个条件就可以 ...

  6. python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

    1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  7. python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)

    1.函数 2种编程方法 关键词面向对象:华山派 --->> 类----->class面向过程:少林派 -->> 过程--->def 函数式编程:逍遥派 --> ...

  8. js高阶函数

    我是一个对js还不是很精通的选手: 关于高阶函数详细的解释 一个高阶函数需要满足的条件(任选其一即可) 1:函数可以作为参数被传递 2:函数可以作为返回值输出 吧函数作为参数传递,这代表我们可以抽离一 ...

  9. Javascript:是你的高阶函数

    在通常的编程语言中,函数的参数只能是基本类型或者对象引用,返回值也只是基本数据类型或对象引用.但在Javascript中函数作为一等公民,既可以当做参数传递,也可以被当做返回值返回.所谓高阶函数就是可 ...

随机推荐

  1. SQL基础--ROWNUM伪列

    ROWNUM伪列 的概念: rownum表示的是一个数据行编号的伪列,它的内容是在用户查询数据时,为用户动态分配的一个数组(行号). 注意它是随机生成的,并不是和某一行数据绑定在一起的. 观察rown ...

  2. HBase预分区

    seq 0 7 | awk '{printf("\\x%02x\\x%02x\n", $1/256, $1%256);}' | sort -R |head -3 create 'm ...

  3. mysql Blob存取的一个简单例子

    一.得到mysql的连接 这里封装成一个方法,方便后面使用. public Connection getConnection() throws Exception{ String url = &quo ...

  4. QTP对象管理

    QTP对象库管理 - 动态绑定对象库文件:http://blog.csdn.net/testing_is_ ... le/details/20569843 用ObjectRepositoryUtil动 ...

  5. scala言语基础学习五

    extends override 和super方法 override field 父类不是val对象不能覆盖field isInstanceOf和asInstanceOf(isInstanceOf是用 ...

  6. 【转】windows环境下利用doxygen生成代码文档

    作者:jiangwenna    http://www.jiangwenna.com/windows-doxygen-doc/ Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统 ...

  7. Linux程序设计(一)入门

    1. linux程序 Linux应用程序表现为两种特殊类型的文件:可执行文件和脚本文件. 可执行文件:是计算可以直接运行的程序,相当于windows的.exe文件. 脚本文件:一组指令的集合.这些指令 ...

  8. 树莓派(raspberry)启用root账户 分类: 服务器搭建 Raspberry Pi 2015-04-12 18:45 95人阅读 评论(0) 收藏

    树莓派使用的linux是debian系统,所以树莓派启用root和debian是相同的. debian里root账户默认没有密码,但账户锁定. 当需要root权限时,由默认账户经由sudo执行,Ras ...

  9. UML学习之类图

    參考链接: http://www.uml.org.cn/oobject/201211231.asp  深入浅出UML http://www.open-open.com/lib/view/open132 ...

  10. Linux - 简明Shell编程08 - 函数(Function)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash function Check( ...