//: 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. Codeforces118D Caesar&#39;s Legions(DP)

    题目 Source http://codeforces.com/problemset/problem/118/D Description Gaius Julius Caesar, a famous g ...

  2. java内存模型-final

    与前面介绍的锁和 volatile 相比较,对 final 域的读和写更像是普通的变量访问.对于final 域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个 final 域的写入,与随后把 ...

  3. Determining Current Block and Current Item in Oracle Forms

    SYSTEM.CURSOR_BLOCK Determining current block in Oracle Forms Using SYSTEM.CURSOR_BLOCK system varia ...

  4. andriod增、删、改、查

    将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java.ut ...

  5. Dictionary解析json,里面的数组放进list,并绑定到DataGridView指定列

    Dictionary解析json,1.根据json建立相应的实体类,json里面的数组形式放进list集合2.取list中的数据,将相应的数据绑定到DataGridView,如下:循环(动态添加一行数 ...

  6. Android编程心得-图片自适应心得

    在Android 的开发过程中,我们知道存放图片资源的文件夹是drawable,与它类似的名字的文件夹drawble-hdpi,drawable-ldpi,drawable-mdpi,drawable ...

  7. iOS申请真机调试证书 -- 图文详解

    请参考这篇文章 : http://ios.9tech.cn/news/2013/1011/33117.html 这篇文章完全就是对的,主要是最后一步 “配置Xcode" 图没有配全,也配得不 ...

  8. mysql if then

    CREATE PROCEDURE userinfo_modify( IN id INT ,IN loginid INT ,IN levelid INT ,IN namestr VARCHAR(50) ...

  9. UE4 C++ 笔记

    1.获取当前的GameMode:GameMode = Cast<你GameMode的类名>( UGameplayStatics::GetGameMode(this)); 2.输出日志Deb ...

  10. 关于npm 淘宝镜像 以及package.json里包的更新

    1.淘宝镜像的设置 npm config set registry https://registry.npm.taobao.org npm config set disturl https://npm ...