对于函数(func),我只能说swift的func真是无所不能,参数数量可以不固定、可以返回函数类型、用函数做参数等等。下面就来看看做这些例子。
// Playground - noun: a place where people can play
import Cocoa
//函数定义
func greet(name:String, day: String) ->String {
return"Hello \(name), today is \(day)."
}
greet("Bob","Tuesday")
//返回多个
func getGasPrices() -> (Double,Double, Double) {
return (3.59,3.69, 3.79)
}
getGasPrices()
//参数数目不固定
func sumOf(numbers:Int...)->Int {
var sum = 0
for nb in numbers {
sum += nb
}
return sum
}
sumOf()
sumOf(42,548,325)
//函数可以当作参数传入另一个函数 例句中参数list是这么写的:list:Int[],但是我发现不行,就改成来list:Array<Int>,不知道是不是小bug。
// 后来发现是数组定义方式改变,list:Int[]应写为list:[Int]。总觉得看着怪怪的,好的,它又给我移植带来了不便!
func hasAnyMatches(list:Array<Int>,condition:Int -> Bool) ->Bool {
for item in list {
if condition(item) {
return true
}
}
returnfalse
}
func lessThanTen(number:Int) -> Bool {
return number < 10
}
var numbers = [20,19,2,6]
hasAnyMatches(numbers,lessThanTen)
//函数可以返回一个函数
func makeIncrementer() -> (Int ->Int) {
func addOne(number: Int) -> Int {
return 1 + number
}
returnaddOne
}
var increment =makeIncrementer ()
increment(7)