Swift教程之函数详解

2020-01-08 22:46:49于丽

注意

一个变量参数的变化没有超出了每个调用函数,所以对外部函数体是不可见的。变量参数只能存在于函数调用
的生命周期里。

输入-输出参数

可变参数,如上所述,只能在函数本身内改变。如果你想有一个函数来修改参数的值,并且想让这些变化要坚持在函数调用结束后,你就可以定义输入-输出参数来代替。

通过在其参数定义的开始添加inout关键字写用来标明输入-输出参数。一个在输入-输出参数都有一个传递给函数的值,由函数修改后,并从函数返回来替换原来的值。

4、函数类型

每个函数都有一个特定的类型,包括参数类型和返回值类型,比如:

 

复制代码
func addTwoInts(a: Int, b: Int) -> Int {
    return a + b
}
func multiplyTwoInts(a: Int, b: Int) -> Int {
    return a * b
}

 

这个例子定义了两个简单的数学函数addTwoInts和multiplyTwoInts。每个函数接受两个int参数,返回一个int值,执行相应的数学运算然后返回结果

这两个函数的类型是(Int, Int)->Int可以解释为:

这个函数类型它有两个int型的参数,并返回一个int类型的值

下面这个例子是一个不带任何参数和返回值的函数:

 

复制代码  
func printHelloWorld() {
    println("hello, world")
}
这个函数的类型是()->(),或者函数没有参数,返回void。函数没有显式地指定返回类型,默认为void,在Swift中相当于一个空元组,记为()。

 

使用函数类型

在swift中你可以像任何其他类型一样的使用函数类型。例如,你可以定义一个常量或变量为一个函数类型,并指定适当的函数给该变量:

 

复制代码
var mathFunction: (Int, Int) -> Int = addTwoInts
可以解读为:

 

“定义一个名为mathFunction变量,该变量的类型为'一个函数,它接受两个int值,并返回一个int值。'设置这个新的变量来引用名为addTwoInts函数的功能。”