开发日记002————内存分配问题(new var make)

开门见山的说这篇是为了内存分配写的

先说一下golang的基本类型可以简单分为 

值类型 (此括号以及一下括号仅为举例:int int32 int64 unit)

引用类型 (slice map)

指针类型 (*值类型)

 

对于值类型,var声明会为他分配内存空间并赋0值

而指针引用则不会默认为nil

 

 

 

 会提示invalid address or nil pointer dereference

 

var mib = []byte{0, 0, 0, 0, 0, 0, 0,0}
实际上是分配了内存的

 

但是直接声明是没有分配内存的

 

 

 

换句话说用字面量声明的数组是有内存的

而var只能为值类型自动分配内存

 

new是直接分配内存地址

make也是内存分配函数但是仅限于引用类型使用

posted @ 2021-10-11 16:24  削梨杜月笙  阅读(63)  评论(0)    收藏  举报