gpt4 book ai didi

pointers - 指向结构的指针更改未反射(reflect)在调用者中

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:15 26 4
gpt4 key购买 nike

我将一个指向结构的指针传递给另一个名为someFunc()的函数并在那里进行更改,但在本例中,它不会反映在调用方函数中。

type Slot struct {
f1 int
f2 string
f3 []*string
}

func NewSlot(f1, f2){
return &Slot{f1: f1, f2: f2, f2: make([]*string, 0)}
}

func main() {

slots := &Slots{}
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
s := scanner.Text()
sarr := strings.Split(s, " ")
fmt.Println("scanner", slots)
someFunc(slots, sarr[0], sarr[1:]...)
}
}
func someFunc(slots *Slots, cmd string, args ...string) {
slots = NewSlots(5) // return Pointer to slots with 5 and other value initialized

// But not reflecting to main() func, Why?
}

最佳答案

我在“阿德里安”的帮助下找到了这个。这就是它的工作原理。

func main() {

slots := &Slots{}
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
s := scanner.Text()
sarr := strings.Split(s, " ")
fmt.Println("scanner", slots)
someFunc(&slots, sarr[0], sarr[1:]...)
}
}
func someFunc(slotsPtr **Slots, cmd string, args ...string) {
*slotsPtr = NewSlots(5) // return Pointer to slots with 5 and other value initialized

// and used *slotsPtr in rest of the program
}

关于pointers - 指向结构的指针更改未反射(reflect)在调用者中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48544204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com