登录
首页 >  Golang >  Go教程

Golangnew创建指针方法详解

时间:2026-02-05 15:24:35 225浏览 收藏

今天golang学习网给大家带来了《Golang用new创建指针方法解析》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

new用于分配内存并返回指向零值的指针,如new(int)返回*int,常用于基础类型和结构体初始化;而&可结合字面量初始化字段,更推荐使用。

Golang如何使用new创建指针

在Go语言中,new 是一个内置函数,用于为指定类型分配内存并返回指向该类型的指针。它常用于创建基本数据类型的指针或结构体的指针,初始化值为对应类型的零值。

new的基本用法

new(T) 会为类型 T 分配一块内存,将其初始化为 T 的零值,并返回一个 *T 类型的指针。

例如:
  • new(int) 返回 *int,指向一个初始值为 0 的 int 变量
  • new(string) 返回 *string,指向一个初始值为 "" 的字符串
  • new(bool) 返回 *bool,指向一个初始值为 false 的布尔值

示例代码:

ptr := new(int)
*ptr = 10
fmt.Println(*ptr) // 输出:10

为结构体创建指针

使用 new 也可以为结构体类型创建指针,字段自动初始化为各自的零值。

type Person struct {
    Name string
    Age  int
}

p := new(Person)
p.Name = "Alice"
p.Age = 25

fmt.Printf("%+v\n", *p) // 输出:{Name:Alice Age:25}

注意:虽然可以这样使用,但在实际开发中更常见的是使用 &Person{} 或直接字面量取地址的方式,语法更清晰。

new与&的区别

new 只做内存分配和零值初始化,不支持带初始值的创建。而使用 & 结合字面量可以同时初始化字段。

  • new(Person):分配内存,所有字段为零值,返回 *Person
  • &Person{Name: "Bob"}:创建实例并初始化部分字段,返回指针

因此,当需要自定义初始值时,推荐使用 & 方式;若只需零值指针,new 也是合法选择。

基本上就这些。new 在简单场景下可用,但日常编码中更灵活的方式是直接使用取地址操作。理解 new 有助于阅读标准库或底层代码中的指针处理逻辑。不复杂但容易忽略细节。

以上就是《Golangnew创建指针方法详解》的详细内容,更多关于的资料请关注golang学习网公众号!

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>