码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-02 10:19:36      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

 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}

 

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

标签:

原文地址:http://www.cnblogs.com/lovecc/p/4386068.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!