网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

go语言make和new的用法

这篇文章主要讲解了“go语言make 和 new的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“go语言make 和 new的用法”吧!

网站建设、网站制作介绍好的网站是理念、设计和技术的结合。创新互联建站拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。

makenew 是golang中初始化一个结构时,经常会使用到的关键子,但是这两个关键字常常让我们感到困惑。因为它们能够初始化的结构并不相同。

 

make 和 new

  • make 的作用是初始化内置的数据结构,例如slice(切片)、哈希表和 Channel
  • new 的作用是根据传入的类型分配一片内存空间并返回指向这片内存空间的指针

例如:

//创建了一个元素为int的slice,返回的是slice的头部指针
slice := make([]int, 0, 100)

//创建了一个key为int,value为布尔类型的map,返回的是结构体指针
m := make(map[int]bool, 10)

//创建了一个元素为int的管道,返回的是结构体的指针
ch := make(chan int, 5)
 

new呢,相比与复杂的 make 关键字, 功能就简单多了,它只能接收类型作为参数然后返回一个指向该类型的指针

例如:

i := new(int)

//完全等价于new,返回的都是指针
var v int
i := &v
   

总结

new 的作用是 初始化 一个指向类型的指针 (*T), make 的作用是为 slice, map 或者 channel 初始化,并且返回引用 T

make(T, args)函数的目的与new(T)不同。它仅仅用于创建 Slice, MapChannel,并且返回类型是 T(不是T*)的一个初始化的(不是零值)的实例。这中差别的出现是由于这三种类型实质上是对在使用前必须进行初始化的数据结构的引用。例如, Slice是一个 具有三项内容的描述符,包括 指向数据(在一个数组内部)的指针,长度以及容量。在这三项内容被初始化之前,Slice的值为nil。对于SliceMapChannelmake()函数初始化了其内部的数据结构,并且准备了将要使用的值

 

感谢各位的阅读,以上就是“go语言make 和 new的用法”的内容了,经过本文的学习后,相信大家对go语言make 和 new的用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网站标题:go语言make和new的用法
网页地址:http://bjjierui.cn/article/jphhcp.html

其他资讯