Swift输入输出参数inout

inout:输入输出参数,可以在函数内部修改外部实参的值。

  1. inout参数不能有默认值
  2. 只能传入可变参数,(类似Int...)不能标记为inout
  3. inout参数本质是地址传递的
func changeValues(_ v1: inout Int, _ v2: inout Int) {
        v1 = 30
        v2 = 40
    }

changeValues(&num1, &num2)
print(num1,num2) // 30 40

给定一个数组,要求写一个函数,交换数组中的两个元素
传统写法

func exchangeArr(_ arr:inout [T], _ a: Int, _ b: Int) {
        let tem = arr[a]
        arr[a] = arr[b]
        arr[b] = tem
    }

元祖写法

func exchangeElement(_ arr1: inout [T],_ a: Int, _ b: Int) {
        (arr1[a],arr1[b]) = (arr1[b],arr1[a])
    }

你可能感兴趣的:(Swift输入输出参数inout)