Swift 函数参数名称
函数参数都有一个外部参数名和一个局部参数名
局部参数名
局部参数名是在函数的实现内部使用
func printNum(number: Int) {
//number 为局部参数名,只能在函数体内使用
print(number)
}
//调用
printNum(number: 8)
printNum(number: 8)
printNum(number: 8)
外部参数名
可以在局部参数名前指定外部参数名,中间
以空格分隔
,外部参数名用于在函数调用时传递给函数的参数
。
func pow(firstArg a: Int, secondArg b: Int) -> Int {
var res = a
for _ in 1..<b {
res = res * a
}
print(res)
return res
}
//调用
pow(firstArg:8, secondArg:2)
可变参数函数
可变参数可以接收零个或多个值。函数调用时,可以用可变参数来指定函数的参数,其数量是不确定的。
可变参数通过在变量类型名后面加入...
的方式来定义**
例:
func variableParam<N>(params: N...){
for i in params {
print(i)
}
}
//调用
variableParam(params: 1,2,3,4,5)
variableParam(params: "大","家","好","!")
执行输出结果:
1
2
3
4
5
大
家
好
!
常量,变量及 I/O 参数
一般默认在函数中定义的参数都是
常量参数
,也就是这个参数只可以查询使用
,不能改变它的值。
如果想要声明一个变量参数,可以在参数定义前加
inout
关键字,这样就可以改变这个参数的值了
语法示例
func getName(_ name: inout String) { }
//在此这个 name 值可以在函数中改变,
一般默认的参数传递都是传值调用的,而不是传引用。所以传入的参数在函数内改变,并不影响原来的那个参数。传入的只是这个参数的副本
当传入的参数作为输入输出参数时,需要在参数名前加
&
符,表示这个值可以被函数修改
例:
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
//调用
var x = 1
var y = 5
//someInt 和 anotherInt 在传入 swapTwoInts(_:_:) 函数前,都加了 & 的前缀
swapTwoInts(&x, &y)
print("x 现在的值 \(x), y 现在的值 \(y)")
执行输出结果:
x 现在的值 5, y 现在的值 1
网友评论