函数和闭包
1.使用 func 来声明一个函数,使用名字和参数来调用函数。使用->来指定函数返回值。
1. func greet(name: String, day: String) -> String { 2. return "Hello \(name), today is \(day)." 3. } |
4. greet(" Bob", "Tue sday ") |
使用一个元组来返回多个值。
1. func getGasPrices() -> (Double, Double, Double) { |
2. return (3.59, 3.69, 3.79) 3. } |
函数的参数数量是可变的,用一个数组来获取它们:
func su mOf(n umber s: I nt... ) -> Int { |
var sum = 0 for number in numbers { sum += number |
} return sum} sumOf() |
函数可以嵌套。被嵌套的函数可以访问外侧函数的变量,你可以使用嵌套函数来重构一个太长或者太复杂的函数。
func re turnF iftee n() -> In t { |
var y = 10 y += 5 |
} |
return y } |
returnF iftee n() |
函数是一等公民,这意味着函数可以作为另一个函数的返回值。
函数也可以当做参数传入另一个函数。
有很多种创建闭包的方法。如果一个闭包的类型已知,比如作为一个回调函数,你 可 以 忽略参数的类型和返回值。单个语句闭包会把它语句的值当做结果返回。 |
你可以通过参数位置而不是参数名字来引用参数——这个方法在非常短的闭包中非常有用。当一个闭包作为最后一个参数传给一个函数的时候,它可以直接跟在括号后面。
1. sort([1,5,3,12,2]){$0>$1}