微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

作者:fengsh998
原文地址:http://blog.csdn.net/fengsh998/article/details/30314359
转载请注明出处
如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998支持我,谢谢!


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

看例子:

例子中包括

callback函数的声明与使用

函数作为形参进行传递

函数作为返回值

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

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

调用

    classViewController:UIViewController{
  1. funcwillcallback(callback:CallBackManager)
  2. println("回调前结果\(callback.callbackName)")
  3. funcdidcallback(callback:CallBackManager)
  4. @H_404_75@ 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. @H_404_75@ test.testparams(add,instruction:"测试函数作为传参") @H_404_75@ letfuncMulti=test.testfunctionReturn("返回函数地址") @H_404_75@ letret=funcMulti(5,5)
  14. println("5*5=\(ret)")
  15. return;}
  16. }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐