加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift语言的学习笔记四-2(对上一节有些遗留进行处理)

发布时间:2020-12-14 02:18:00 所属栏目:百科 来源:网络整理
导读:作者:fengsh998 原文地址: http://blog.csdn.net/fengsh998/article/details/30314359 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号 fengsh998 来支持我,谢谢! 在上一节中有些问题还没有弄清,在这里自己写了一下,做了一下
作者:fengsh998
原文地址:http://blog.csdn.net/fengsh998/article/details/30314359
转载请注明出处
如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢!


在上一节中有些问题还没有弄清,在这里自己写了一下,做了一下验证,并希望能给读者有所帮助。

看例子:

例子中包括

callback函数的声明与使用

函数作为形参进行传递

函数作为返回值

函数支持泛型,当然class也支持。

[cpp] view plain copy
  1. importFoundation
  2. typealiasPoint=(Int,Int)
  3. letorigin:Point=(0,0)
  4. //初始化函数用
  5. funcwillDoit(sender:CallBackManager)
  6. {
  7. println("willDoitdefaulft.")
  8. }
  9. funcdidDoit(sender:CallBackManager)
  10. {
  11. println("didDoitdefaulft.")
  12. }
  13. classCallBackManager
  14. //声明两个函数变量
  15. varwilldoitcallback:(CallBackManager)->()=willDoit
  16. vardiddoitcallback:(CallBackManager)->()=didDoit
  17. varcallbackName="helloworld"
  18. init()
  19. functestCall()
  20. self.willdoitcallback(self)
  21. callbackName="resetdata"
  22. println("todosomething.")
  23. self.diddoitcallback(self)
  24. //函数地址作为形参传递
  25. functestparams(addfunc:(Int,Int)->(Int),instruction:String)->Bool
  26. println("3+5=(addfunc(3,5)),第二个参数值为:(instruction)")
  27. returntrue
  28. //函数作为返回值
  29. functestfunctionReturn(instruction:String)->(Int,Int)->Int
  30. funcMultiplication(a:Int,b:Int)->Int
  31. returna*b
  32. returnMultiplication
  33. //自动闭包类型
  34. //调用simpleAssert(testNumber%2==0,"testNumberisn'tanevennumber.")
  35. funcsimpleAssert(condition:@auto_closure()->Bool,message:String){
  36. if!condition(){
  37. println(message)
  38. //可变参数
  39. funcunknowParam(slist:String...)
  40. varret:String=""
  41. forusbinslist
  42. println(usb)
  43. ret+=(usb+",")
  44. //使用泛型
  45. //simpleMin(17,42)//整型参数
  46. //simpleMin(3.14159,2.71828)//浮点型
  47. funcsimpleMin<T:Comparable>(x:T,y:T)->T{
  48. ifx<y{
  49. returny
  50. returnx
  51. }

调用:

    classViewController:UIViewController{
  1. funcwillcallback(callback:CallBackManager)
  2. println("回调前结果(callback.callbackName)")
  3. funcdidcallback(callback:CallBackManager)
  4. println("回调后结果(callback.callbackName)")
  5. funcadd(a:Int,b:Int)->Int
  6. returna+b
  7. overridefuncviewDidLoad(){
  8. super.viewDidLoad()
  9. vartest=CallBackManager()
  10. test.willdoitcallback=willcallback
  11. test.diddoitcallback=didcallback
  12. test.testCall()
  13. test.testparams(add,instruction:"测试函数作为传参")
  14. letfuncMulti=test.testfunctionReturn("返回函数地址")
  15. letret=funcMulti(5,5)
  16. println("5*5=(ret)")
  17. return;}
  18. }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读