我有一个结构体,结构体中包含另一个结构体或者对象,怎么进行引用呢?比如:
struct Item {
arr []int
length int
}
func swap(a,b *int) {
tem := a
a = b
b = tem
}
obj := &Item{arr:make([]int,10),length:0}
//...
//...
swap(&obj.arr[2], &obj.arr[5])
以上的写法不能交换啊,应该怎么写呢
package main
import "fmt"
type Item struct {
arr []int
length int
}
func swap(a, b *int) {
*a, *b = *b, *a
}
func main() {
obj := Item{arr: make([]int, 10), length: 0}
swap(&obj.arr[2], &obj.arr[5])
fmt.Println(obj)
}
swap方法写得有问题
GO支持多重赋值,所以交换两个变量的值不需要借助一个中间变量,所以用指针直接交换就可以了。