当前位置: 代码迷 >> 综合 >> Golang基础(new函数)
  详细解决方案

Golang基础(new函数)

热度:81   发布时间:2024-02-28 16:49:52.0

一.new函数

  • 在上一小节中学习了指针,每次创建一个指针必须在额外创建一个变量,操作比较麻烦.

  • 可以通过new函数直接创建一个类型的指针

变量名:=new(Type)
  • 使用new函数创建的指针已有指向,可以使用*指针对象进行赋值.

func main() {a := new(int)fmt.Println(a) //输出:指针地址*a = 123fmt.Println(*a) //输出:123
}
  • 只声明的指针变量不能直接赋值,(未开辟内存空间,需要手动分配空间之后才能使用)

func main() {var a *int*a = 123fmt.Println(*a)
}
  • 结果

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x1 addr=0x0 pc=0x48b576]

通过指针变量为只声明的指针分配空间

func main() {var a *intvar b=123a=&b*a=456fmt.Println(&b)fmt.Println(*a)
}