swift基础语法三(函数与闭包)

 1 // Playground - noun: a place where people can play
 2
 3 import Cocoa
 4 //函数和闭包
 5
 6 //函数,使用func关键字声明函数:
 7 func greet(name:String, day:String) -> String {
 8     return "Hello \(name), today is \(day)."
 9 }
10 greet("Bob", "Tuesday")
11
12
13 //通过元组(Tuple)返回多个值
14 func getGasPrices() -> (Double, Double, Double){
15     return (3.59, 3.69, 3.79)
16 }
17 getGasPrices()
18
19 //支持带有变长参数的函数
20 func sumOf(numbers: Int...) -> Int {
21     var sum = 0
22     for number in numbers {
23         sum += number
24     }
25     return sum
26 }
27
28 sumOf()
29 sumOf(42, 597, 12)
30
31 //函数也可以嵌套
32 func returnFifteen() -> Int {
33     var y = 10
34     func add() {
35         y += 5
36     }
37     add()
38     return y
39 }
40
41 returnFifteen()
42
43 //作为头等对象,函数既可以作为返回值,也可以作为参数传递
44
45 func makeIncrementer() -> (Int -> Int) {
46     func addOne(number: Int) -> Int {
47         return 1 + number
48     }
49     return addOne
50 }
51 var increment = makeIncrementer()
52 increment(7)
53
54 func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool {
55     for item in list {
56         if condition(item) {
57             return true
58         }
59     }
60     return false;
61 }
62
63 func lessThanTen(number: Int) -> Bool {
64     return number < 10
65 }
66 var numbers = [20, 19, 7, 12]
67 hasAnyMatches(numbers, lessThanTen)
68
69 //闭包--本质上来说,函数是特殊的闭包,Swift中可以利用{}声明匿名闭包
70
71 numbers.map({
72     (number: Int) -> Int in
73     let result = 3 * number
74     return result
75     })
76 //当闭包的类型已知时,可以使用下面的简化写法
77 numbers.map({ number in 3 * number })
78 //此外还可以通过参数的 位置来使用参数,当函数最后一个参数是闭包时,可以使用下面的语法:
79 sort([1, 5, 3, 12, 2]) {$0 > $1}
时间: 2024-10-12 22:50:22

swift基础语法三(函数与闭包)的相关文章

Swift语法基础入门三(函数, 闭包)

Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: func 函数名称(参数名:参数类型, 参数名:参数类型...) -> 函数返回值 { 函数实现部分 } 没有参数没有返回值 可以写为 ->Void 可以写为 ->() 可以省略 Void.它其实是一个空的元组(tuple),没有任何元素,可以写成() func say() -> V

Swift基础语法(常量变量、数据类型、元组、可选、断言等)

Swift 是 iOS 和 OS X 应用开发的一门新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的. Swift 的类型是在 C 和 Objective-C 的基础上提出的,Int是整型:Double和Float是浮点型:Bool是布尔型:String是字符串.Swift 还有两个有用的集合类型,Array和Dictionary,请参考集合类型. 就像 C 语言一样,Swift 使用变量来进行存储并通过变量名来关联值.在 Sw

Python 基础语法(三)

Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)-------------------------------------------- 七.面向对象编程 python支持面向对象编程:类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例. 对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域:对象也可以使用属于类的函数,这样的函数称为类的方法:域和方法可

Swift基础语法学习总结(转)

Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型,几乎所有类型都是可打印的. 1.3) swift在语句后面加分号与否都是正确的,但是swift偏好的风格是不在结尾处加分号的.如果有多个语句,必须用分号隔开. 1.4) 在一个数字中庸下划线(_)会被忽视,方便认出大数值的的数字,也可以在前面补零. 1.5) swift不允许在不同种类型间做加减乘

Swift中文教程(四)--函数与闭包

原文:Swift中文教程(四)--函数与闭包 Function 函数 Swift使用func关键字来声明变量,函数通过函数名加小括号内的参数列表来调用.使用->来区分参数名和返回值的类型: 1 func greet(name: String, day: String) -> String { 2 return "Hello \(name), today is \(day)." 3 } 4 greet("Bob", "Tuesday")

SQL基础语法和函数

SQL常用查询语句和函数 (2012-05-09 09:44:55) 转载▼ 标签: sql查询 函数 sql常用语句 it 分类: SQL SQL SELECT 语法 SELECT 列名称 FROM 表名称 SELECT LastName,FirstName FROM Persons --------------------------------------------------------------------------------- SQL SELECT DISTINCT 语句 在

Swift 基础语法

一.变量和常量 定义 let 定义常量,一经赋值不允许再修改 var 定义变量,赋值之后仍然可以修改 //: # 常量 //: 定义常量并且直接设置数值 let x = 20 //: 常量数值一经设置,不能修改,以下代码会报错 // x = 30 //: 使用 `: 类型`,仅仅只定义类型,而没有设置数值 let x1: Int //: 常量有一次设置数值的机会,以下代码没有问题,因为 x1 还没有被设置数值 x1 = 30 //: 一旦设置了数值之后,则不能再次修改,以下代码会报错,因为 x1

Swift基础语法学习总结二

1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参数需要指明类型,而如果没有返回值可以不写->(),返回值只需要写返回类型,如果写了返回名称,可以在函数调用后的值用点语法访问 1.3 在参数名称前可以加上外部参数名,调用的时候就可以带上它了,如果外部参数名和内部参数名相同则可以直接在内部参数名前加#即可 1.4 如果跟参数设置一个默认值,则swift会自动加上外部参数名,如果不想

swift学习笔记2——函数、闭包

阅读目录 函数 闭包 之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询用.详细可以参考the-swift-programming-language-in-chinese,或者苹果官方英文版文档 当前版本是swift2.2 函数 func sayHello(personName: String, alreadyGreeted: Bool) -> S