Swift 中, 方法称为了一等公民,也就说,方法可以当做参数进行传递进另一个方法,也可以在一个方法中,定义一个方法类型的变量
在 OC 中,我们一般使用 block 进行传递,在 Swift 中,同样也可以是使用闭包,也可以是使用方法参数
//生成方法的方法
func makeIncrementor(addNumber:Int) -> (inoutInt) ->Void{
func incrementor(_variable:inoutInt) ->Void{
variable += addNumber
}
return incrementor
}
//生成一个+ 10的方法
let addNumber10 =makeIncrementor(addNumber:10)
var a002 =2
let a003 =addNumber10(&a002) // 12