![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
保护小cc
这个作者很懒,什么都没留下…
展开
-
go make和new的区别
new()和make()的区别看起来二者没有什么区别,都在堆上分配内存,但是它们的行为不同,适用于不同的类型。new(T) 为每个新的类型T分配一片内存,初始化为 0 并且返回类型为*T的内存地址:这种方法 返回一个指向类型为 T,值为 0 的地址的指针,它适用于值类型如数组和结构体;它相当于 &T{}。make(T) 返回一个类型为 T 的初始值,它只适用于3种内建的引用类型:切片、map 和 channel换言之,new 函数分配内存,make 函数初始化;下图给出了区别:...原创 2021-03-11 20:54:00 · 110 阅读 · 0 评论 -
golang 数组和切片
数组概念特点:具有相同 唯一类型一组已编号且长度固定可以通过索引来读取或者修改最大长度为 2Gb声明格式var identifier [len]typpe例如:var arr1 [5] intvar arr2 [10]string在内存中的结构是:每个元素是一个整型值,当声明数组时所有的元素都会被自动初始化为默认值 0。arr1 的长度是 5,索引范围从 0 到 len(arr1)-1。对索引项为 i 的数组元素赋值可以这么操作:arr[i] = value,所以数组是 可变的原创 2021-03-11 21:08:27 · 130 阅读 · 0 评论