Swift的学习(闭包2续)

Swift的学习(闭包2续),第1张

概述2、尾随闭包 (Trailing Closures) 语法不同而已,意思是一致的; 最后一个参数是函数,及闭包时,及尾随闭包;当你的函数里有一个参数 是函数,并且描述很长,这时你可以将其放在参数的最后;及尾随闭包 //定义了一个函数 两个参数,后一个是函数func someFunctionThatTakesAClosures(params1:String,params2:()->Void) {

2、尾随闭包 (Trailing Closures) 语法不同而已,意思是一致的; 最后一个参数是函数,及闭包时,及尾随闭包;当你的函数里有一个参数 是函数,并且描述很长,这时你可以将其放在参数的最后;及尾随闭包

//定义了一个函数 两个参数,后一个是函数func someFunctionThatTakesAClosures(params1:String,params2:()->VoID) { print(params1) params2() } //正常语法的使用 someFunctionThatTakesAClosures("hello",params2: { print("正常调用") }) //尾随闭包的使用 someFunctionThatTakesAClosures("你好") { print("尾随闭包调用") }
//如果只有闭包 一个参数,此函数 在使用时()可以省去func testTrailing(params:()->VoID) { params() } testTrailing { print("测试只有一个闭包参数的函数") }
//尾随闭包的练习let digitname=[0:"zero",1:"one",2:"two",3:"three",4:"four",5:"five"]let numberArray=[14,22,123]let resultC=numberArray.map { (resultA) -> String in    var resultA=resultA    print(resultA)    return "你好\(resultA)"}print(resultC)//结果 ["你好14","你好22","你好123"]let resultD=digitname.map { (key,value) -> VoID in    print(key,value)}print(resultD)//结果 [(),(),()]//有些理解只可意会,不可言传;通过这个例子大家自己对他理解吧

3、捕获值 (Captureing Values) 可以理解为在内部函数能够访问传进去的值

func makeIncrementer(params amcount:Int) -> ()->Int {    var runningToal=0    func incrementer()->Int{      runningToal+=amcount        return runningToal    }    return incrementer}  var resultI=makeIncrementer(params: 10)   print(resultI(),resultI(),resultI())//结果 10 20 30//incrementer()单独拿出来是没有意义的

4闭包是引用类型

let also=resultI   print(also())//结果 40
总结

以上是内存溢出为你收集整理的Swift的学习(闭包2续)全部内容,希望文章能够帮你解决Swift的学习(闭包2续)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1072338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存