swift再学习之 - swift3.0 函数

在OC语言的基础之上,swift中对函数的功能进行了扩充。如下对函数的基本功能进行列举:


基本函数形式


无入参的函数形式


无入参也无出参的函数形式
两个入参的函数


swift再学习之 - swift3.0 函数_第1张图片
返回元组形式的出参


swift再学习之 - swift3.0 函数_第2张图片
带参数标签的函数

//可变参数--类似于参数中传入一个数组,参数的处理按照数据的方式来进行

//可变参数的传入值在函数体中变为此类型的一个数组。例如,一个叫做numbers的Double...型可变参数,在函数体内可以当做一个叫numbers的[Double]型的数组常量。

swift再学习之 - swift3.0 函数_第3张图片
可变参数函数

函数参数默认是常量。试图在函数体中更改参数值将会导致编译错误(compile-time error)。这意味着你不能错误地更改参数值。如果你想要一个函数可以修改参数的值,并且想要在这些修改在函数调用结束后仍然存在,那么就应该把这个参数定义为输入输出参数(In-Out Parameters)。

swift再学习之 - swift3.0 函数_第4张图片
输入输出参数函数


swift再学习之 - swift3.0 函数_第5张图片
函数类型作为参数

这个例子定义了printMathResult(_:_:_:)函数,它有三个参数:第一个参数叫mathFunction,类型是(Int, Int) -> Int,你可以传入任何这种类型的函数;第二个和第三个参数叫a和b,它们的类型都是Int,这两个值作为已给出的函数的输入值。

当printMathResult(_:_:_:)被调用时,它被传入addTwoInts函数和整数3和5。它用传入3和5调用addTwoInts,并输出结果:8。

printMathResult(_:_:_:)函数的作用就是输出另一个适当类型的数学函数的调用结果。它不关心传入函数是如何实现的,只关心传入的函数是不是一个正确的类型。这使得printMathResult(_:_:_:)能以一种类型安全(type-safe)的方式将一部分功能转给调用者实现。

你可能感兴趣的:(swift再学习之 - swift3.0 函数)