Swift中的函数
认识函数
函数是一段独立的代码块,用来执行一些特定的操作。我们可以通过给函数一个名字来定义它的功能,当我们需要执行这段代码块的时候通过函数的名字来进行调用。
定义和调用函数
定义函数使用关键字func,每个函数都需要有一个函数名,它描述函数执行的任务。
下面我们定义一个函数名为sayHi的函数:1
2
3func sayHi(){
print("你好")
}
调用函数:1
sayHi()
输出结果:1
你好
带参数和返回值的函数
在一些特定的情况下,我们需要给函数传入一些数据,传入的数据我们称之为参数。另外,我们也可能需要函数给我们返回一些代码块执行的结果,这就是返回值。
带参数的函数
1 | func sayHi(name:String){ |
在定义带参数的函数时,需要声明参数的数据类型,声明的方式类似于变量的声明,但是不需要加var关键字。
调用带参函数:1
sayHi("Felix")
注意,在调用函数的时候,传入的参数类型要和函数定义时的数据类型一致。上面的实例中参数的数据类型是String类型,所以函数调用是我们只能传入一个字符串。
带返回值的函数
1 | func sayHi() -> String { |
定义带返回值的函数我们需要使用返回箭头->箭头后面跟的是返回值的数据类型。另外,在代码块执行结束后我们需要使用return关键字返回数据。
函数调用:1
let result = sayHi()
在调用带返回值的函数时,我们一般会把返回的结果赋给一个常量,以便之后使用。当然我们也可以直接使用print直接将结果打印。print(sayHi())
同时带参数和返回值的函数
1 | func sum(a:Int,b:Int) -> Int{ |
上面的实例中我们定义来一个求和函数来计算任何两个整数的值,并将求和后的结果返回。另外,这个函数定义了两个参数,所以函数调用的时候需要传入两个参数。
函数调用:1
print(sum(a: 100, b: 24))
多返回值函数
1 | func calculate(a:Int,b:Int) -> (sum:Int,sub:Int){ |
这是一个计算函数,我们分别计算传入的两个参数的和与差,然后将和与差返回。
函数调用:1
2
3let result = calculate(a: 102, b: 23)
print("两数之和为:\(result.sum)")
print("两数之差为:\(result.sub)")
输出结果:1
2两数之和为:125
两数之差为:79
函数的实际参数标签和形式参数名
每个函数的形式参数都包含实际参数标签和形式参数名。实际参数标签在函数调用的时候使用,形式参数名在函数的内部使用。默认情况下,Swift使用形式参数名作为实际参数标签,在上面所有的函数定义中,我们都没有特别声明实际参数标签。1
2
3
4
5func calculate(first a:Int, second b:Int) -> (sum:Int,sub:Int){
let sum = a + b
let sub = a - b
return (sum,sub)
}
在上面的实例中second和first就是实际参数标签,a和b就是形式参数名。1
let result = calculate(first: 102, second: 23)
我们注意到,我们在进行函数调用的时候使用的实际参数标签。使用实际参数标签可以帮助我们提高代码的可读性。
省略实际参数标签
在某些情况下,我们可能想要在调用函数的时候省略实际参数标签,那么我们可以借助_通配符实现。1
2
3
4
5func calculate(_ a:Int, _ b:Int) -> (sum:Int,sub:Int){
let sum = a + b
let sub = a - b
return (sum,sub)
}
函数调用:1
let result = calculate(102, 23)
可以看到,在函数调用的时候我们已经可以不用写实际参数标签了。