在上一节中有些问题还没有弄清,在这里自己写了一下,做了一下验证,并希望能给读者有所帮助。
看例子:
例子中包括
callback函数的声明与使用
函数作为形参进行传递
函数作为返回值
函数支持泛型,当然class也支持。
[cpp] view plain copy importFoundation typealiasPoint=(Int,Int) letorigin:Point=(0,0) //初始化函数用 funcwillDoit(sender:CallBackManager) { println("willDoitdefaulft.") } funcdIDDoit(sender:CallBackManager) { println("dIDDoitdefaulft.") } classCallBackManager //声明两个函数变量 varwilldoitcallback:(CallBackManager)->()=willDoit vardIDdoitcallback:(CallBackManager)->()=dIDDoit varcallbackname="helloworld" init() functestCall() self.willdoitcallback(self) callbackname="resetdata" println("todosomething.") self.dIDdoitcallback(self) //函数地址作为形参传递 functestparams(addfunc:(Int,Int)->(Int),instruction:String)->Bool println("3+5=\(addfunc(3,5)),第二个参数值为:\(instruction)") returntrue //函数作为返回值 functestfunctionReturn(instruction:String)->(Int,Int)->Int funcMultiplication(a:Int,b:Int)->Int returna*b returnMultiplication //自动闭包类型 //调用simpleAssert(testNumber%2==0,"testNumberisn'tanevennumber.") funcsimpleAssert(condition:@auto_closure()->Bool,message:String){ if!condition(){ println(message) //可变参数 funcunkNowParam(sList:String...) varret:String="" forusbinsList println(usb) ret+=(usb+",") //使用泛型 //simpleMin(17,42)//整型参数 //simpleMin(3.14159,2.71828)//浮点型 funcsimpleMin<T:Comparable>(x:T,y:T)->T{ ifx<y{ returny returnx }
调用:
classVIEwController:UIVIEwController{ funcwillcallback(callback:CallBackManager) println("回调前结果\(callback.callbackname)") funcdIDcallback(callback:CallBackManager) println("回调后结果\(callback.callbackname)") funcadd(a:Int,b:Int)->Int returna+b overrIDefuncvIEwDIDLoad(){ super.vIEwDIDLoad() vartest=CallBackManager() test.willdoitcallback=willcallback test.dIDdoitcallback=dIDcallback test.testCall() test.testparams(add,instruction:"测试函数作为传参") letfuncMulti=test.testfunctionReturn("返回函数地址") letret=funcMulti(5,5) println("5*5=\(ret)") return;} } 总结
以上是内存溢出为你收集整理的swift语言的学习笔记四-2(对上一节有些遗留进行处理)全部内容,希望文章能够帮你解决swift语言的学习笔记四-2(对上一节有些遗留进行处理)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)