免费开源的iOS开发学习平台

Swift语法介绍: 函数对象

函数赋值给常量

func add(a:Int, b:Int) -> Int {
    return a + b
}

//函数作为对象,赋值给常量
let myAdd = add

var result = myAdd(1, b:2)

运行结果:

函数作为返回值

func minus(a:Int, b:Int) ->Int {
    return a - b
}

/*
参数:operationType: String
返回值:(a: Int, b:Int) -> Int 返回一个函数,该函数有两个参数,并且返回一个Int型的返回值
*/
func operation (operationType: String) -> (a: Int, b:Int) -> Int {
    if operationType == "add" {
        return add
    }
    return minus
}

//调用方法1
operation("add")(a:3,b:4)

//调用方法2:把返回的函数赋值给常量returnFunc
let returnFunc = operation("add")
result = returnFunc(a:3,b:4)

运行结果:

函数作为参数

func largeNumber(a:Int, b:Int) -> Int {
    if a > b {
        return a
    }
    
    return b
}

func smallNumber(a:Int, b:Int) -> Int {
    if a < b {
        return a
    }
    
    return b
}

func comparePlus(funcParam:(Int, Int) ->Int,a:Int, b:Int) -> Int {

    return funcParam(a, b)

}

comparePlus(largeNumber, a: 3, b: 4)
comparePlus(smallNumber, a: 3, b: 4)

运行结果:

代码下载

https://github.com/99ios/SwiftBasic

视频教程