11.Lambda和高阶函数(Lambda and Higher-order functions)

高阶函数
  • kotlin_Lambda,高阶函数
Lambda表达式详细内容见“Lambda表达式”部分
Lambda表达一般使用“{ }”包围
它的参数(如果有的话)在“->”前定义,参数类型可能是省略的
函数体跟在“->”后面
高阶函数:参数返回值的类型是函数型
函数型:(参数) -> 返回值
lambda: 一种无名函数的简写{(参数)->函数执行语句}
其他语言称闭包,即有能力访问其自身范围外的变量
//高阶函数:描述任务的结果,而不是使用循环详细推算
//map:常用语对集合类型的元素类型整体转变
//其lambda中参数的约定名称为it
val a  = arrayOf(1,2,3,4,5,6,7,8,9,10)
val b  =a.map{"第${it}"}
println(b)
for (s in b){
     println(s)
} 
//filter:对集合类型进行筛选
var sum = 0
a.filter {it % 2 == 0}.forEach{
    sum += it
    printlnt(sum)
}

*swift_高阶函数

Map
在Swift中Map是Array类的一个方法,我们可以使用它来对数组的每个元素进行转换。
方法:func map(transform: (T) -> U) -> U[]
let intArray = [1,11,111,1111]
//结果为["1","11","111","1111"]
let stringArray = intArray.map({(intValue)-> String in 
      return "\(intValue)"   
})
Filter
filter用于选择数组元素中满足某种条件的元素
方法:filter(includeElement: (T) -> Bool) -> T[]
let filterArray = intArray.filter{(intValue)->Bool in 
      return intValue > 30
}
Rduce
reduce方法把数组元素组合计算为一个值
方法:reduce(initial: U, combine: (U, T) -> U) -> U
let sum = intArray.reduce(0,combine: +)
let sum2 = intArray.reduce(0){(int,int2) -> Int in 
      return int + int2
}

你可能感兴趣的:(11.Lambda和高阶函数(Lambda and Higher-order functions))