1.函数基本写法:
swift里面的函数就相当于是oc里面的方法,以func开头
事例: func 函数名 (参数..) ->返回值类型{
// 具体的函数内容
}
2. 常见的函数的类型:
// 表示无参,无返回值的函数
//func sum () ->Void{
//
//}
// 无返回值的函数就相当于是一个空的元组类型,所以void也可以使用()代替
//func sum () ->(){
//
//}
// 没有返回值,返回值也可以直接省略不写
//func sum (){
//
//}
// 有参,无返回值
//func sum(a: Int){
//
//}
// 有参, 有返回值
func sum(a: Int) -> Int{
return a
}
// 返回多个参数的特例
func sum() -> (String, Int, Double){
let tuple = ("小明", 18, 1.75)
return tuple
}
3. 函数的使用注意
1.内部参数和外部参数:在函数内部使用的参数叫做内部参数,在函数外部调用传递的擦桉树叫做外部参数
func test(a: Int, b: Int) -> Int{
// a和b在这里表示内部参数
return a + b
}
// 这里的a和b表示外部参数
test(a: 1, b: 3)
2. 参数定义别名
在函数的参数前申明一个别名,当函数外部在调用的时候就可以使用这个别名,有组于函数外界使用的理解
事例:
func test(aa a: Int, bb b: Int) -> Int{
// a和b在这里表示内部参数
return a + b
}
test(aa: 2, bb: 7)
3. 参数忽略
在函数的参数前使用_表示,在函数的外部调用这个函数式这个参数就可以被忽略
事例:
func test(_ a: Int, bb b: Int) -> Int{
// a和b在这里表示内部参数
return a + b
}
test(0, bb: 1)
4. 默认参数
在定义参数的时候,有时候我们可以给一个参数添加一个默认值,当外界不给我传递这个参数值的时就可以使用这个参数的默认值
事例:
func test(aa a: Int, bb b: Int = 1) -> Int{
// a和b在这里表示内部参数
return a + b
}
test(aa: 1)
5. 参数的地址传递
在函数内部, 默认接收到参数被赋值给一个常量,在swift3.0中, 如果想要改变, 需要在函数内部使用var修饰
事例:
func test(a: Int){
var a = a
a = 666
print(a)
}
var num = 99
test(a: num)
如果我们不想通过在函数内部用var去定义一个变量去过度修改,也可以通过传递参数地址的形式使用inout关键字去修改参数
事例:
func test(a: inout Int){
a = 666
print(a)
}
var num = 99
test(a: &num)
5. 可变参数
顾名思义: 外部调用函数的时候参数可以传递任意多个, 内部可以把内部参数当着数组去使用,
事例:
func test(nums: Int...) -> Int{
var result: Int = 0
for num in nums {
result += num
}
return result
}
test(nums: 1, 1, 2, 4, 4, 6, 4)