×

Swift闭包

Falcon 2020-03-15 views:
自动摘要

正在生成中……

import UIKit

let array = [6,3,4,2,9,12]


print(array.map({ (n1:Int)->Int in return n1+1}))

print(array.map({ (n1:Int)->Int in  n1+1}))

print(array.map({ n1 in  n1+1}))

print(array.map{$0+1})

// 转换成String
print(array.map{"\($0)"})

//转换成新 array
let arrayNew = array.map({"\($0+1)"})
print(arrayNew)

 

总结

swift 闭包的基本语法是

{
    (参数...)->返回值类型 in 
    语句xxxooo
}

根据类型推断可省略参数类型和返回值类型,使用$0,$1,$n 直接引用参数,可省略参数和in关键字,如果闭包位于是最后一个参数,放在( )外面,如

func callFun(n1:Int, n2:Int,operation:(Int,Int)->Int)->Int {
    return operation(n1,n2)
}

//调用可简化为
print(callFun(n1:1,n2:2){$0+$1})

在最上面的例子中由于map只有一个参数,所以可以将map后面的( )省略掉。