golang make()内置函数

golang make()内置函数,第1张

概述内建函数 make 用来为 slice,map 或 chan 类型分配内存和初始化一个对象(注意:只能用在这三种类型上),跟 new 类似,第一个参数也是一个类型而不是一个值,跟 new 不同的是,make 返回类型的结构实列而不是指针,而返回值也依赖于具体传入的类型 make()函数在golang的代码如下: func make(t Type,size IntegerType) Type 使用

内建函数 make 用来为 slice,map 或 chan 类型分配内存和初始化一个对象(注意:只能用在这三种类型上),跟 new 类似,第一个参数也是一个类型而不是一个值,跟 new 不同的是,make 返回类型的结构实列而不是指针,而返回值也依赖于具体传入的类型

make()函数在golang的代码如下:

func make(t Type,size IntegerType) Type

使用make来创建slice,map,chanel说明如下:

slice: @H_301_15@
var slice_ []int = make([]int,5,10)fmt.Println(slice_)var slice_1 []int = var slice_2 []int = []int{1,2}fmt.Println(slice_2)打印结果:[0 0 0 0 0][0 0 0 0 0][1,2]

在创建slice时第一个参数用于确定初始化该slice的大小该slice中的值为零值,第三个参数用于确定该slice的长度

如果我们创建该slice时就能确定该slice最多只会装多大的数据量时就可以使用第三个参数固定该slice的长度,这样做的就会免去如果slice的数据超出内部所指向的array的最大长度时对array数据的转移,可以提高效率

map: @H_301_15@
var m_ map[string]int = make(map[string]int)m_["one"] = 1fmt.Println(m_)var m map[string]int = map[string]int{"1":1}m["2"] = 2fmt.Println(m)打印结果:map[one:1]map[1:1 2:2]

根据 size 大小来初始化分配内存,不过分配后的 map 长度为 0,如果 size 被忽略了,那么会在初始化分配内存时分配一个小尺寸的内存

chanel: @H_301_15@

管道缓冲区依据缓冲区容量被初始化。如果容量为 0 或者忽略容量,管道是没有缓冲区的

chanel还没有进行深入了解,以上有什么不对的地方望指正,

总结

以上是内存溢出为你收集整理的golang make()内置函数全部内容,希望文章能够帮你解决golang make()内置函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1280391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存