您的位置:首页 > 移动开发 > Swift

二十一 Swift3.0之 闭包捕获值

2017-04-08 16:58 381 查看
func getIncFunc(inc: Int) -> (Int) -> Int
{
var max = 10
func incFunc(x :Int) ->Int{
print("incFunc函数结束")
//        return inc + x
max++
return max + x
}
// 当执行到这一句时inc参数就应该被释放了, 但是由于在内部函数中使用到了它, 所以它被捕获了
// 同理, 当执行完这一句时max变量就被释放了,但是由于在内部函数中使用到了它, 所以它被捕获了
print("getIncFunc函数结束")
return incFunc
}

// 被捕获的值会和与之对应的方法绑定在一起, 同一个方法中的变量会被绑定到不同的方法中
let incFunc = getIncFunc(5)
print(incFunc(5))
print(incFunc(5))
let incFunc2 = getIncFunc(5)
print(incFunc2(5))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift 闭包