相关疑难解决方法(0)

(*T)(零)和&T {}/new(T)之间有什么区别?Golang

任何人都能解释这两种符号之间的细微差别:(*T)(nil)/new(T)&T{}.

type Struct struct {
    Field int
}

func main() {
    test1 := &Struct{}
    test2 := new(Struct)
    test3 := (*Struct)(nil)
    fmt.Printf("%#v, %#v, %#v \n", test1, test2, test3)
    //&main.Struct{Field:0}, &main.Struct{Field:0}, (*main.Struct)(nil) 
}
Run Code Online (Sandbox Code Playgroud)

看起来这个(*T)(nil)与另一个的唯一区别是它返回nil指针或没有指针,但仍然为Struct的所有字段分配内存.

memory syntax memory-management go

5
推荐指数
1
解决办法
379
查看次数

标签 统计

go ×1

memory ×1

memory-management ×1

syntax ×1