Swift - 32 - 函数类型
//: Playground - noun: a place where people can play import UIKit func add(a:Int, b:Int) -> Int
{
return a + b
} // 其中, (Int, Int) -> Int 就是显式的声明函数类型
let anotherAdd:(Int, Int) -> Int = add
anotherAdd(3, 4) /*--------------------------------------------------------------------*/ func sayHello(nickName:String)
{
print("Hello, \(nickName)")
} // 这里需要注意的是无返回值的函数类型的声明格式
let anotherGreeting:(String) -> Void = sayHello
anotherGreeting("Rinpe Chan")
// 或者写成
let greeting:(String) -> () = sayHello
greeting("BoBo")
// 或者写成(只有一个参数的时候有效)
let anotherHello:String -> () = sayHello
anotherHello("my son") /*------------------------------举个栗子--------------------------------*/ // 假设老师要对两组学生的分数进行不同操作 func changeScores1(inout scores:[Int]) {
for index in 0..<scores.count {
scores[index] += 3
}
} func changeScores2(inout scores:[Int]) {
for index in 0..<scores.count {
scores[index] -= 5;
}
} var scores1 = [36, 61, 78, 99, 100]
changeScores1(&scores1) var scores2 = [12, 45, 76, 88, 96]
changeScores2(&scores2) // 其实对于上面两个方法, 只是for循环里面的内容不同, 也就是老师对分数的操作
// 可以简化为: func changeScores(op:(Int) -> Int, inout scores:[Int]) {
for index in 0..<scores.count {
op(scores[index])
}
} func op1(originScore:Int) -> Int {
return originScore + 3
} func op2(originScore:Int) -> Int {
return originScore - 5
} changeScores(op1, scores: &scores1)
changeScores(op2, scores: &scores2)
Swift - 32 - 函数类型的更多相关文章
- Swift - 33 - 返回函数类型和函数嵌套
//: Playground - noun: a place where people can play import UIKit /*---------------------------返回函数类 ...
- Swift 之 函数与闭包的应用实例
http://www.cocoachina.com/swift/20160106/14862.html 今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的.说到函数,只要是写过程序 ...
- 窥探Swift之函数与闭包的应用实例
今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的.说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包.今天的一些小实 ...
- Swift:函数和闭包
函数 函数是一个完成独立任务的代码块,Swift中的函数不仅可以像C语言中的函数一样有函数的参数和返回值,而且还支持嵌套,并且有函数参数默认值.可变参数等. //定义一个函数,注意参数和返回值,如果没 ...
- Swift(三.函数)
一.swift中的函数分为以下几类吧 1>无参无返 2>无参有返 3>有参无返 4>有参有返 5>有参多返 二.看下面几个例子吧 1>无参无返 func a ...
- 窥探 Swift 之 函数与闭包的应用实例
今天的博客算是比较基础的,还是那句话,基础这东西在什么时候 都是最重要的.说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包.今天的一些小 ...
- Swift - 自定义函数规则说明
1,无返回值的函数 1 2 3 func test(name:String){ } 2,返回一个返回值 1 2 3 func test(name:String) -> Bool{ r ...
- Swift之函数语法详解
函数 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被“调用”. Swift 统一的函数语法足够灵活,可以用来表示任何函数 ...
- Swift 中函数使用指南
关于Swift中的各种函数的使用的总结 前言 时间久了,好多东西我们就会慢慢忘记,在这里总结一下Swift中函数的使用原则,把大部分的函数使用技巧用代码示例来做了演示,但是如果想提高,还是要多多思考才 ...
随机推荐
- SharePoint REST api
http://msdn.microsoft.com/en-us/magazine/dn198245.aspx Understanding and Using the SharePoint 2013 R ...
- c#分支语句;循环语句(随堂练习)
1. 输入月份,日期号,输出是今年的第几天 平年,2月28天 switch (变量名) {case "": break} 2. 循环语句: for(int i ...
- java 动态代理学习(Proxy,InvocationHandler)
前几天看到java的动态代理机制,不知道是啥玩意,然后看了看.死活不知道 invoke(Object proxy, Method m, Object[] args)种的proxy是个什么东西,放在这里 ...
- Maven实战四
转载:http://www.iteye.com/topic/1123231 为什么要定义Maven坐标 在我们开发Maven项目的时候,需要为其定义适当的坐标,这是Maven强制要求的.在这 ...
- android之apk自动更新解析包失败问题
在apk自动更新(相关问题可以看我的博客http://blog.csdn.net/caicongyang) 从服务器下载完成后,点击notification提示安装时,每次都报解析包失败错误!首先我想 ...
- .net ref关键字在引用类型上的使用
只接上干货. namespace ConsoleApplication1 { class Person { public string UserName { get; set; } } class P ...
- LA3353
感觉好久没做网络流这类的题目都不快会做了 网络流建模之前首先要分析性质 选择要求每个点恰属一个环就代表每个点在选择的图中,只有唯一入度和唯一出度 那就简单了,对n个点拆点,对于原图的边i-->j ...
- CH Round #52 - Thinking Bear #1 (NOIP模拟赛)
A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...
- 【转】Javabyte[]数组和十六进制String之间的转换Util------包含案例和代码
原文网址:http://blog.csdn.net/caijunjun1006/article/details/11740223 Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需 ...
- (转载)遍历memcache中已缓存的key
(转载)http://www.cnblogs.com/ainiaa/archive/2011/03/11/1981108.html 最近需要做一个缓存管理的功能.其中有一个需要模糊匹配memcache ...