Scala利用模式匹配编写一个swap函数,用于交换数组中的前两个元素的位置(数组长度>2)
时间: 2024-05-01 09:17:05 浏览: 122
以下是一个示例实现:
```
def swap(arr: Array[Int]): Array[Int] = arr match {
case Array(a, b, rest @ _*) => Array(b, a) ++ rest
case _ => arr
}
```
在这个实现中,我们使用了模式匹配来处理不同长度的数组。如果数组有至少两个元素,我们将其前两个元素交换位置并返回一个新的数组。否则,我们直接返回该数组。
在第一行中,我们使用了 `@` 符号来捕获除前两个元素以外的所有元素,并将它们赋值给变量 `rest`。然后,我们使用 `++` 符号来将交换后的前两个元素与 `rest` 组合成新的数组。
以下是一些示例输入和输出:
```
swap(Array(1, 2, 3)) // Array(2, 1, 3)
swap(Array(5, 8, 2, 4)) // Array(8, 5, 2, 4)
swap(Array(7)) // Array(7)
```
阅读全文