1. //: Playground - noun: a place where people can play
  2.  
  3. import UIKit
  4.  
  5. func add(a:Int, b:Int) -> Int
  6. {
  7. return a + b
  8. }
  9.  
  10. // 其中, (Int, Int) -> Int 就是显式的声明函数类型
  11. let anotherAdd:(Int, Int) -> Int = add
  12. anotherAdd(3, 4)
  13.  
  14. /*--------------------------------------------------------------------*/
  15.  
  16. func sayHello(nickName:String)
  17. {
  18. print("Hello, \(nickName)")
  19. }
  20.  
  21. // 这里需要注意的是无返回值的函数类型的声明格式
  22. let anotherGreeting:(String) -> Void = sayHello
  23. anotherGreeting("Rinpe Chan")
  24. // 或者写成
  25. let greeting:(String) -> () = sayHello
  26. greeting("BoBo")
  27. // 或者写成(只有一个参数的时候有效)
  28. let anotherHello:String -> () = sayHello
  29. anotherHello("my son")
  30.  
  31. /*------------------------------举个栗子--------------------------------*/
  32.  
  33. // 假设老师要对两组学生的分数进行不同操作
  34.  
  35. func changeScores1(inout scores:[Int]) {
  36. for index in 0..<scores.count {
  37. scores[index] += 3
  38. }
  39. }
  40.  
  41. func changeScores2(inout scores:[Int]) {
  42. for index in 0..<scores.count {
  43. scores[index] -= 5;
  44. }
  45. }
  46.  
  47. var scores1 = [36, 61, 78, 99, 100]
  48. changeScores1(&scores1)
  49.  
  50. var scores2 = [12, 45, 76, 88, 96]
  51. changeScores2(&scores2)
  52.  
  53. // 其实对于上面两个方法, 只是for循环里面的内容不同, 也就是老师对分数的操作
  54. // 可以简化为:
  55.  
  56. func changeScores(op:(Int) -> Int, inout scores:[Int]) {
  57. for index in 0..<scores.count {
  58. op(scores[index])
  59. }
  60. }
  61.  
  62. func op1(originScore:Int) -> Int {
  63. return originScore + 3
  64. }
  65.  
  66. func op2(originScore:Int) -> Int {
  67. return originScore - 5
  68. }
  69.  
  70. changeScores(op1, scores: &scores1)
  71. changeScores(op2, scores: &scores2)

  

Swift - 32 - 函数类型的更多相关文章

  1. Swift - 33 - 返回函数类型和函数嵌套

    //: Playground - noun: a place where people can play import UIKit /*---------------------------返回函数类 ...

  2. Swift 之 函数与闭包的应用实例

    http://www.cocoachina.com/swift/20160106/14862.html 今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的.说到函数,只要是写过程序 ...

  3. 窥探Swift之函数与闭包的应用实例

    今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的.说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包.今天的一些小实 ...

  4. Swift:函数和闭包

    函数 函数是一个完成独立任务的代码块,Swift中的函数不仅可以像C语言中的函数一样有函数的参数和返回值,而且还支持嵌套,并且有函数参数默认值.可变参数等. //定义一个函数,注意参数和返回值,如果没 ...

  5. Swift(三.函数)

    一.swift中的函数分为以下几类吧 1>无参无返   2>无参有返 3>有参无返  4>有参有返  5>有参多返 二.看下面几个例子吧 1>无参无返 func a ...

  6. 窥探 Swift 之 函数与闭包的应用实例

    今天的博客算是比较基础的,还是那句话,基础这东西在什么时候 都是最重要的.说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包.今天的一些小 ...

  7. Swift - 自定义函数规则说明

    1,无返回值的函数 1 2 3 func test(name:String){   } 2,返回一个返回值 1 2 3 func test(name:String) -> Bool{     r ...

  8. Swift之函数语法详解

    函数 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被“调用”. Swift 统一的函数语法足够灵活,可以用来表示任何函数 ...

  9. Swift 中函数使用指南

    关于Swift中的各种函数的使用的总结 前言 时间久了,好多东西我们就会慢慢忘记,在这里总结一下Swift中函数的使用原则,把大部分的函数使用技巧用代码示例来做了演示,但是如果想提高,还是要多多思考才 ...

随机推荐

  1. 非正式js语法

    有一种格式化的变种(该变种没有通过JSLint测试)略过了花括号,并将if语句放在同一行中. 这样做的好处是该循环语句变得可读性更强(对于每个拥有属性X的元素,就直接对X进行操作). 这样做的结果是只 ...

  2. Unity3d场景合并

    Unity3d场景合并 一.Unity3d场景合并,有一次的情况是这样的,就是我们是每个人都在开发,每个人有不同的场景,那么合并的时候,有些会出问题,那么我有一个好的方案,就是首先弄一个公共的资源库, ...

  3. 给java中的System.getProperty添加新的key value对

    由于系统被格了,所以,现在的java项目配置不对,代码里面的配置类调用了一个System.getProperty("env")发现找不到该变量的值,以前一直能找到的. 其实就是以前 ...

  4. Android 中使用MediaRecorder进行录像详解(视频录制)

    在这里给出自己的一个测试DEMO,里面注释很详细.简单的视频录制功能. package com.video; import java.io.IOException; import android.ap ...

  5. Unity 弹出界面时屏蔽对3D场景的点击

    注:这里的UI制作用的是NGUI插件 如题,在游戏中经常会遇到这种情况,场景中点击相关物体或者按钮弹出对应的2D界面,这时候除了2D界面上的可点击按钮等,应该屏蔽掉对3D场景的点击或者拖动事件. 在这 ...

  6. 【转】Java删除文件夹和文件

    原文网址:http://kxjhlele.iteye.com/blog/323657 以前在javaeye看到过关于Java操作文件的一篇文章,写的很好,但找了半天也没找到,就把找到底几篇文章整理一下 ...

  7. 如果在安装32位oracle 客户端组件时的情况下以64位模式运行,将出现问题

    今天要写个程序,环境是win7+ vs2008+ oracle.首先得保证能连接到数据库.确认代码是没有问题的,但是拿过来直接.报错: “尝试加载 Oracle 客户端库时引发 BadImageFor ...

  8. 201512读书分享——读《做自己的No.1》“哪一天”是永远不会到来的

    在看这本书的同时,最近也看了一部电影叫做<令人怦然心动的人生整理魔法>,讲一个女孩子平常不善收理,然后房间和人生乱七八糟,她总想着“等哪一天有空了就收拾”.但是,最终一句话打醒了——“哪一 ...

  9. nginx在mac下的安装与基本操作

    1. 安装 brew install nginx(需要安装homebrew) 2. 执行  nginx 直接启动nginx服务 3. nginx -s  reload/stop 4. 配置地址 sud ...

  10. Jenkins 学习资料

    学习资料: iTech's Blog: Jenkins 入门总结 爱自己: 18篇博客 阳光温暖了心情: 17 篇博客 官网 参考: 构建基于Jenkins + Github的持续集成环境 CI持续集 ...