函数类型作为函数参数
func sum(v1: Int, v2: Int) -> Int {
return v1 + v2
}
func difference(v1: Int, v2: Int) -> Int {
return v1 - v2
}
func printResult(_ mathFn:(Int,Int) -> Int, _ a: Int, _ b: Int) {
print("Result: \(mathFn(a,b))")
}
printResult(sum, 5, 2) // Result: 7
printResult(difference, 5, 2) // Result: 3
函数类型作为函数返回值
func next(_ input: Int) -> Int {
return input + 1
}
func previous(_ input: Int) -> Int {
return input - 1
}
func forward(_ forward: Bool) -> (Int) -> Int {
return forward ? next : previous
}
forward(true)(3) // 4
forward(false)(3) // 2
- 返回值是函数类型的函数,叫做高阶函数(Higher-Order Function)
- typealias用来给类型起别名,如typealias Byte = Int8
typealias Date = (year: Int, momth: Int, day: Int)
func test(_ date: Date) {
print(date.0) //2011
print(date.year) //2011
}
test((2011,9,10))
网友评论