H5W3
当前位置:H5W3 > 其他技术问题 > 正文

go中怎么引用结构体中的对象

我有一个结构体,结构体中包含另一个结构体或者对象,怎么进行引用呢?比如:

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支持多重赋值,所以交换两个变量的值不需要借助一个中间变量,所以用指针直接交换就可以了。

本文地址:H5W3 » go中怎么引用结构体中的对象

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址