gpt4 book ai didi

pointers - 指向 Golang 中的结构

转载 作者:IT王子 更新时间:2023-10-29 01:07:54 25 4
gpt4 key购买 nike

我在执行以下代码时遇到错误:

package main

import (
"fmt"
)

type Struct struct {
a int
b int
}

func Modifier(ptr *Struct, ptrInt *int) int {
*ptr.a++
*ptr.b++
*ptrInt++
return *ptr.a + *ptr.b + *ptrInt
}

func main() {
structure := new(Struct)
i := 0
fmt.Println(Modifier(structure, &i))
}

这给了我一个关于“ptr.a 的无效间接(int 类型)...”的错误。还有为什么编译器不给我关于 ptrInt 的错误?提前致谢。

最佳答案

就这样

func Modifier(ptr *Struct, ptrInt *int) int {
ptr.a++
ptr.b++
*ptrInt++
return ptr.a + ptr.b + *ptrInt
}

你实际上试图在 *(ptr.a) 上应用 ++ptr.a 是一个 int,而不是一个指向 int 的指针。

你可以使用 (*ptr).a++ 但这不是必需的,因为如果 ptr 是一个,Go 会自动解决 ptr.a指针,这就是你在 Go 中没有 -> 的原因。

关于pointers - 指向 Golang 中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931605/

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