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

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


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

看例子:

例子中包括

callback函数的声明与使用

函数作为形参进行传递

函数作为返回值

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

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

调用

    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相关文章