1、函数形参
函数参数都有一个外部参数名和一个本地参数名。外部参数名用来标记传递给函数调用的参数,本地参数名在实现函数的时候使用。
一般情况下,第一个参数省略其外部参数名,第二个及以后的参数使用其本地参数名作为自己的外部参数名。所有参数需要有不同的本地参数名,但可以共享相同的外部参数名。
1.2 指定外部参数名
外部参数名是为了让函数中的参数明确以及便于理解。外部参数名需要写在本地参数名之前,并使用空格将其分开。
1.3 忽略外部参数名
如果开发者不想为第二个及后续的参数设置参数名,可以使用一个下划线“_”代替一个明确的参数名。
1.4 可变参数
使用可变参数,可以使一个参数接受零个或多个指定类型的值。设定一个可变参数需要在参数类型名后添加“…”。
1.5 默认参数
开发者可以在函数体中为每个参数定义默认值。当默认值定义后,调用这个函数时可以忽略这个参数。
注意:如果既有默认参数,又有可变参数, 那么,可变参数放在最后面,默认参数只能出现在次后面
1.6 常量参数与变量参数
在函数中,参数默认都是常量,常量的值是不可以改变的,如果想要改变参数中的值,需要将常量参数改变为变量参数。变量参数的定义就是在参数名前使用一个 var 关键字。
1.7 输入-输出参数
以上函数中所使用额参数只可以在函数内部发生改变。如果开发者想用一个函数来修改参数的值,并且想让这些变化在函数调用后仍然有效。这时,需要定义输入-输出参数。它的定义是通过在参数名前加 inout 关键字。
2、函数的返回值
2.1 具有多个返回值的函数
函数不仅可以返回一个返回值,还可以返回多个,这时就需要使用到元组类型。
3、函数类型
在swift中,每个函数都是一个特定的类型,这种类型成为函数类型。它由参数类型和返回值构成。
3.1 使用函数类型作为参数
在此代码中定义了两个函数,第二个函数有3个参数:第一个参数为fun,类型为(Int,Int)->Int,开发者可以传入任何这种类型的函数;第二个参数和第三个参数分别为a和b,它们的类型都是Int型,这两个值是函数的输入值。
3.2 使用函数类型作为返回值类型