原创Blog,转载请注明出处

blog.csdn.net/hello_hwc


前言:和OC不同,Swift有非常多全局的函数,这些全局函数对简化代码来说非常实用。眼下Swift出到了2.0,只是我这篇文章还是用Swift1.2写的演示样例代码。


Count-统计数量

文档

func count<T : _CollectionType>(x: T) -> T.Index.Distance

Description
Return the number of elements in x.
O(1) if T.Index is RandomAccessIndexType; O(N) otherwise.

演示样例

 let arr = [1,2,3,4]
let dic = [1:2,"a":"b"]
let str = "Wenchenhuang"
println(count(arr))//4
println(count(dic))//2
println(count(str))//12

Filter-条件过滤

文档

func filter<S : SequenceType>(source: S, includeElement: (S.Generator.Element) -> Bool) -> [S.Generator.Element]

Description
Return an Array containing the elements of source, in order, that satisfy the predicate includeElement.

演示样例-过滤长度大于4的字符串

 let array = ["Wen","Chen","Huang"]
let filteredArray = filter(array, { (element:String) -> Bool in
return count(element)>4;
})
println(filteredArray)

也能够简化

let filteredArray =  filter(array) {count($0)>4}

Map - 映射集合类型,返回数组

文档

func map<C : CollectionType, T>(source: C, transform: (C.Generator.Element) -> T) -> [T]
Description Return an Array containing the results of mapping transform over source.

演示样例

let array = ["Wen","Chen","Huang"]
let mapedAray = map(array, { (element:String) -> Int in
return count(element)
})
println(mapedAray) //[3,4。5]

相同能够简化

let mapedAray = map(array){count($0)}

Reduce - 把数组结合到一起

文档

func reduce<S : SequenceType, U>(sequence: S, initial: U, combine: @noescape (U, S.Generator.Element) -> U) -U

Description
Return the result of repeatedly calling combine with an accumulated value initialized to initial and each element of `sequence`, in turn.

演示样例

 let array = ["Wen","Chen","Huang"]
let reduceResult = reduce(array, "Hello ") { (originValue:String, element:String) -> String in
return originValue + element;
}
println(reduceResult) //Hello WenChenHuang

能够简化

 let reduceResult = reduce(array, "Hello ") { $0 + $1}

进一步简化

let reduceResult = reduce(array, "Hello ",+)

Swift 函数Count,Filter,Map,Reduce的更多相关文章

  1. Python内置函数之filter map reduce

    Python内置函数之filter map reduce 2013-06-04 Posted by yeho Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对 ...

  2. Python2.7学习笔记-定义函数、filter/map/reduce/lambda

    我把写的代码直接贴在下面了,注释的不是很仔细,主要是为了自己复习时方便查找,并不适合没有接触过python的人看,其实我也是初学者. #定义函数 def my_abs(x): if x>=0: ...

  3. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

  4. Python之匿名函数(filter,map,reduce)

    参考博客:Python匿名函数详解--http://blog.csdn.net/csdnstudent/article/details/40112803 Python内建函数之——filter,map ...

  5. python之有用的3个内置函数(filter/map/reduce)

    这三个内置函数还是非常有用的,在工作中用的还不少,顺手,下面一一进行介绍 1.filter 语法:filter(function,iterable) 解释:把迭代器通过function函数进行过滤出想 ...

  6. Python 函数lambda(), filter(), map(), reduce()

    1 filter filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String ...

  7. Swift函数编程之Map、Filter、Reduce

    在Swift语言中使用Map.Filter.Reduce对Array.Dictionary等集合类型(collection type)进行操作可能对一部分人来说还不是那么的习惯.对于没有接触过函数式编 ...

  8. 高阶函数 filter map reduce

    const app=new Vue({ el:'#app', data:{ books:[{ id:1, name:"算法导论", data: '2006-1', price:39 ...

  9. Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

    Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是 ...

随机推荐

  1. Log4net快速搭建

    nuget安装log4net 2018.12.10当前版本为2.0.8 找到所在项目的[Properties->AssemblyInfo] 在底部加上 [assembly: log4net.Co ...

  2. Common.Logging.dll----------配置方式,可选引用,用于日志输出

    1.简介common logging是一个通用日志接口,log4net是一个具体实现. common logging可以把输出连接到其他非log类上, 如EntLib的日志.NLog等 2.使用接下来 ...

  3. LOL喷子专用自动骂人工具,2018更新完整版!

    软件截图 软件说明: 先进入游戏 打开程序 Z开启/C关闭 下载地址:密码 yjnm

  4. libevent学习之网络通信

    服务器端要实现网络通信,肯定会用到socket等函数,这几个函数应该没什么问题.libevent默认情况下是单线程的,可以配置成多线程,每个线程有一个event_base,对应一个struct eve ...

  5. 用Go向MySQL导入.csv文件

    今天来更新一个很少碰到,但碰到了又让人十分蛋疼的问题——Go语言中执行MySQL的load data local infile语句报local file 'xxx' is not registered ...

  6. struts2 针对类型转换出错的处理

    在类型转换出错时,需要在页面上显示友好提示: 类型转换出错时,会抛出一个运行时异常,程序会根据建立的属性文件,显示相应的错误提示. 实现方法: 1)新建局部属性文件或者全局属性文件 局部属性文件:放置 ...

  7. 解决【npm ERR! Unexpected end of JSON input while parsing near '...sh_time":141072930277'】方案

    问题描述执行npm install的时候报错npm ERR! Unexpected end of JSON input while parsing near '...sh_time":141 ...

  8. LogisticRegressionCV 参数使用以及含义 笔记

    第一次接触LogisticRegressionCV ,记录一下. Logistic回归是分类算法,不能应用于回归中(传入模型的y值,不能是float类型,必须是int类型) 正则化选择参数 :pena ...

  9. 【Python实践-10】用sorted()对列表排序

    #按名字排序 l2= [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] def by_name(t): return t[0] l2=so ...

  10. HDU 4747 Mex【线段树上二分+扫描线】

    [题意概述] 一个区间的Mex为这个区间没有出现过的最小自然数,现在给你一个序列,要求求出所有区间的Mex的和. [题解] 扫描线+线段树. 我们在线段树上维护从当前左端点开始的前缀Mex,显然从左到 ...