iOS开发 - 「Swift 学习」Swift 函数(函数参数名

2021-12-02  本文已影响0人  俺不是大佬儿

Swift 函数参数名称

函数参数都有一个外部参数名和一个局部参数名

局部参数名

局部参数名是在函数的实现内部使用

func printNum(number: Int) {
//number 为局部参数名,只能在函数体内使用
     print(number)
}

//调用
printNum(number: 8)
printNum(number: 8)
printNum(number: 8)

外部参数名

可以在局部参数名前指定外部参数名,中间以空格分隔外部参数名用于在函数调用时传递给函数的参数

\color{red}{如果提供了外部参数名,那么函数在被调用时,必须使用外部参数名}

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)

可变参数函数

可变参数可以接收零个或多个值。函数调用时,可以用可变参数来指定函数的参数,其数量是不确定的。

\color{black}{定义方式:}
可变参数通过在变量类型名后面加入...的方式来定义**

例:

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

\color{gray}{欢迎大佬儿来指正纠错,共同学习😏!!}

上一篇 下一篇

猜你喜欢

热点阅读