golang中的new()到底是什么意思?
func main(){
type huiStruct struct {
name string
age int64
}
println("==========huiP==============")
var huiP *huiStruct //如果申明的是指针变量 那么指针变量指针地址是有的,但是指针变量指向的地址是空的,必须new才能为该指针变量申请指向的内存空间
println("初始化前变量指针地址", &huiP) //0xc000095e78
println("初始化前变量指针指向", *&huiP) //0x0 //这里未分配内存空间也没有地址 所以new之前使用一定会报错空指针
if empty.IsEmpty(huiP) {
println("指针-初始化前是空的") //空的
} else {
println("指针-初始化前不是空的")
}
huiP = new(huiStruct)
println("初始化后变量指针地址", &huiP) //0xc000095e78
println("初始化后变量指针指向", *&huiP) //0xc000095ec8
if empty.IsEmpty(huiP) {
println("指针-初始化后是空的")
} else {
println("指针-初始化后不是空的") //不是空的
}
}