函数的定义
函数可以理解为封装的方法,swift中使用 func 来定义函数。
例子:
func sayhello() {
print("你好")
}
func sum (a: Int, b: Int) -> Int {
return a + b
}2.隐式返回
如果函数是单一表达式,我们可以直接省略 return。
例子:
func sum (a: Int, b: Int) -> Int {
a + b
}3.实现返回多值
在oc中,只能返回单一的值,swift已元组方式可以返回多个值。
例子:
func sumAndSubtract(a: Int, b: Int) -> (Int,Int) {
return (a + b,a - b)
}4.参数标签和默认值
我们可以给传参定义一个标签,和给参数赋予默认值。如果用 _ 符号,代表不用显示参数名。
例子:
func sum(bq a: Int,_ b: Int = 3) {
a + b
}
sum(bq: 1, 2)
sum(bq: 1)5.可变参数
一个函数最多只有1个可变参数,可变参数相当于是传多个值,值是没有固定的,可以理解为传递一个数组(实际不是数组)。
例子:
func sum(nums: Int...) -> Int {
var result = 0
for num in nums {
result += num
}
return result
}
sum(nums: 1,2,3)
sum(nums: 1,2,3,4,5)6.输入输出函数
我们可以用inout来定义一个输入输出函数,可以在函数内部修改函数的值。inout 参数的本质是地址传递。
例子:
func swapValue(a: inout Int, b: inout Int){
let tmp = a
a = b
b = tmp
}
var a = 5
var b = 10
swapValue(a: &a, b: &b)7.函数重载
函数重载规则是函数名相同,参数个数不同,参数类型不同,参数标签不同。
例子:
//对比参数
func sum(a: Int, b: Int) {
a + b
}
//参数个数不同
func sum(a: Int, b: Int, c: Int){
a + b + c
}
//参数类型不同
func sum(a: Double, b: Double) -> Double {
a + b
}
//标签不同
func sum(c: Int, d: Int) {
c + d
}8.函数类型
1.函数类型定义
每一个函数都有类型,函数类型由参数类型和返回值类型组成
例子:
//函数类型 () -> Void
func sayhello() {
print("你好")
}
//函数类型 (Int,Int) -> Int
func sum(a: Int , b: Int) -> Int {
a + b
}2.函数类型作为函数参数
例子:
func subtract(a: Int, b: Int) -> Int {
a - b
}
func sum(a: Int, b: Int) -> Int {
a + b
}
//函数类型 (Int,Int) -> Int
func test(a: Int, b: Int, fun:(Int,Int) -> Int) -> Int {
return fun(a,b)
}
test(a: 5, b: 3, fun: subtract)
test(a: 5, b: 3, fun: sum)3.函数类型作为函数返回值
例子:
func sum (a: Int, b: Int) -> Int {
return a + b
}
func test() -> (Int,Int)->Int {
return sum
}
test()(2,3)9.嵌套函数
嵌套函数即把函数定义在函数内部。
例子:
func sum(a: Int, b: Int) -> Int {
func subtract(a: Int, b: Int) -> Int {
a - b
}
let c = subtract(a: a, b: b)
return a + b + c
}下一遍文章:swift从入门到精通04-枚举
上一遍文章:swift从入门到精通02-流程控制