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

前端之家收集整理的这篇文章主要介绍了初探swift语言的学习笔记四-2(对上一节有些遗留进行处理)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
作者:fengsh998
原文地址:http://blog.csdn.net/fengsh998/article/details/30314359
转载请注明出处
如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998支持我,谢谢!


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

看例子:

例子中包括

callback函数的声明与使用

函数作为形参进行传递

函数作为返回值

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

  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. }

猜你在找的Swift相关文章