用go语音定义一个函数,使用指针来交换a,b的值
时间: 2024-09-27 07:14:49 浏览: 35
在Go语言中,你可以定义一个接受两个整数切片(slice是Go中表示动态数组的数据结构)作为输入,并通过指针传递来交换它们的值。下面是一个简单的例子:
```go
package main
import "fmt"
func swapValues(a *[]int, b *[]int) {
if a != nil && b != nil { // 确保指针非空
temp := *a // 先将a的值复制到临时变量
*a = *b // 将b的值赋给a
*b = temp // 最后将临时值赋回b,完成交换
}
}
func main() {
var arr1 []int = [2]int{1, 2}
var arr2 []int = [2]int{3, 4}
fmt.Println("Before swapping:")
fmt.Printf("arr1: %v\n", arr1)
fmt.Printf("arr2: %v\n", arr2)
swapValues(&arr1, &arr2) // 使用指针地址传递
fmt.Println("\nAfter swapping:")
fmt.Printf("arr1: %v\n", arr1)
fmt.Printf("arr2: %v\n", arr2)