swift的可变参数函数定义
时间: 2023-02-07 20:30:15 浏览: 73
在 Swift 中,可以通过在参数名后面加入一个 "..." 来定义一个可变参数函数。
例如,我们可以定义一个名为 `sum` 的函数,用于计算任意数量的整数之和:
```
func sum(numbers: Int...) -> Int {
var result = 0
for number in numbers {
result += number
}
return result
}
```
这个函数可以接受任意数量的整数,并返回它们的和。例如,你可以这样调用这个函数:
```
let sum1 = sum(numbers: 1, 2, 3, 4) // 输出 10
let sum2 = sum(numbers: 1, 2, 3, 4, 5) // 输出 15
```
注意,可变参数函数的参数必须是相同类型的。因此,上面的 `sum` 函数只能接受整数作为参数。如果你想要定义一个可以接受任意类型的参数的函数,你可以使用泛型。
相关问题
参数支持 inout
是的,Swift 中的函数参数可以标记为 `inout`,表示它们是可变的,并且在函数调用结束后将保留其新值。这在需要修改函数参数但又不想返回值的情况下非常有用。下面是一个示例:
```swift
func increment(_ value: inout Int) {
value += 1
}
var number = 5
increment(&number)
print(number) // 输出 "6"
```
在这个例子中,我们定义了一个名为 `increment` 的函数,它接受一个 `inout` 的整数参数 `value`。在函数内部,我们将该参数的值加上了 1。然后,我们通过在参数前加上 `&` 符号来调用该函数,以便将变量 `number` 作为可变参数传递给函数。最后,我们打印出 `number` 的新值,即 6。
用swift写一个冒泡排序
好的,以下是用 Swift 语言写的冒泡排序的代码示例:
```swift
func bubbleSort(_ array: inout [Int]) {
let n = array.count
for i in 0..<n-1 {
for j in 0..<n-i-1 {
if array[j] > array[j+1] {
array.swapAt(j, j+1)
}
}
}
}
// 示例
var arr = [5, 2, 7, 1, 9, 6]
bubbleSort(&arr)
print(arr) // 输出 [1, 2, 5, 6, 7, 9]
```
首先定义了一个 `bubbleSort` 函数,该函数接收一个整型数组作为参数,并使用 `inout` 关键字来明确告诉编译器该参数是可变的。然后使用两个嵌套的循环来遍历数组,交换相邻元素的位置,从而实现冒泡排序。最后,我们对一个示例数组进行了排序并将结果输出。