首页 文章 Go语言基础 Go语言new的作用
0
0
0
89

Go语言new的作用

基础语法 作用 语言 new

在 Go 中 * 代表取指针地址中存的值,& 代表取一个值的地址

对于指针,指针储存的是一个值的地址,但本身这个指针也需要地址来储存

package main
import (
	"fmt"
)

func main() {
	var p *int
	fmt.Println(p) //<nil>
	fmt.Println(&p) //0xc000006028
	//fmt.Println(*p) //invalid memory address or nil pointer dereference
	p = new(int)
	fmt.Println(p) //0xc00000a100
	fmt.Println(&p) //0xc000006028
	fmt.Println(*p) //0
}

p 是一个指针,它的值为*p的内存地址0xc000006028,但必须也要为p分配内存。
若不分配内存,p的内存地址为 nil,*p也会报错//invalid memory address or nil pointer dereference
通过new()为 p 分配的内存地址为 0xc00000a100
内存地址 0xc000006028 储存的初始值为 0

地址0xc00000a1000xc000006028
0xc0000060280

官方解释

// The new built-in function allocates memory. The first argument is a type,
// not a value, and the value returned is a pointer to a newly
// allocated zero value of that type.
func new(Type) *Type

即,可以根据代码理解为,通过函数new()为Type分配内存

到此这篇关于“Go语言new的作用”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持Go语言编程!

相关文章

创建博客

开始创作
写作能提升自己能力,也能为他人分享知识。

在线教程

查看更多
  • Go入门指南

    Go入门指南

  • Go语言高级编程

    Go语言高级编程

  • Go Web 编程

    Go Web 编程

  • GO专家编程

    GO专家编程

  • Go语言四十二章经

    Go语言四十二章经

  • 数据结构和算法(Golang实现)

    数据结构和算法(Golang实现)

Go语言编程网

微信扫码关注订阅号


博客 资讯 教程 我的