英文:
Access address of Field within Structure variable in Golang
问题
在Golang中,要访问结构体(STRUCTURE)中字段(FIELD)的指针或地址,你可以使用以下方法。假设你已经有了整个结构体变量的地址或指针。
首先,你可以使用.
操作符来访问结构体中的字段。例如,如果你有一个指向结构体的指针ptr
,你可以通过ptr.field
来访问字段。
另外,你也可以使用(*ptr).field
的方式来访问字段。这里的*ptr
表示解引用指针,得到结构体变量,然后再通过.
操作符来访问字段。
以下是一个示例代码:
package main
import "fmt"
type MyStruct struct {
Field int
}
func main() {
var s MyStruct
s.Field = 42
ptr := &s
// 通过`.`操作符访问字段
fmt.Println(ptr.Field)
// 通过解引用指针和`.`操作符访问字段
fmt.Println((*ptr).Field)
}
在上面的代码中,我们定义了一个名为MyStruct
的结构体,其中包含一个整型字段Field
。在main
函数中,我们创建了一个结构体变量s
,并将其地址赋值给指针ptr
。然后,我们使用.
操作符和解引用指针的方式来访问结构体中的字段,并打印出字段的值。
希望这可以帮助到你!如果你还有其他问题,请随时提问。
英文:
How to access the pointer or the address of a FIELD within a STRUCTURE in GOLANG. I have the address or pointer of the whole structure variable but can not properly access the address of the field inside structure. So far I have tried Reflection but seems breaking somewhere. Any help is highly appreciated.
答案1
得分: 4
例如,
package main
import (
"fmt"
)
type S struct{ F1, F2 int }
func main() {
s := new(S)
f1, f2 := &s.F1, &s.F2
fmt.Printf("%p %p %p\n", s, f1, f2)
}
输出:
0x1040a128 0x1040a128 0x1040a12c
英文:
For example,
package main
import (
"fmt"
)
type S struct{ F1, F2 int }
func main() {
s := new(S)
f1, f2 := &s.F1, &s.F2
fmt.Printf("%p %p %p\n", s, f1, f2)
}
Output:
0x1040a128 0x1040a128 0x1040a12c
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论