Blog
golang-结构体中的字段什么时候应该用指针类型
问题: 结构体中的字段什么时候应该使用指针类型
在 Go 语言中,结构体是值类型。 当我们在结构体中使用字段时,我们可以使用值类型或指针类型。 但是,我们应该在什么时候使用指针类型?
type Person struct {
Name string
Age int
}
❓OR
type Person struct {
Name *string
Age *int
}
结论
-
当您处理大型结构时,以避免类型有助于高效的内存管理并减少开销。
大部分的时候(几百字节左右)的结构体,使用值类型更好。
因为指针类型的字段需要在堆上分配内存,而值类型的字段是在栈上分配内存。 栈上的内存分配和释放比堆上的内存分配和释放更快。
-
当类型为零的值需要与 nil 值区分开时。
例如,如果您想要区分一个字段是未设置的还是设置为零值的,那么使用指针类型是有意义的。
??? TODO