golang编程

A. new 

new 和 make 都是实例化一个 类型,开辟一片内存,生成一个具有物理内存的变量

new (type) *type

new 返回的是一个指针 - 并且实例化的变量默认给予零值,比如int 类型初始值为 0 string的类型初始值为“”

如果 new 一个结构体的话,结构体的成员变量值均为零值

new使用范围无限制 - map、slice、int等(基本数据类型 + 派生数据类型)

B. new 

make 的话 ,仅仅可以用于  map slice channel  这3种

make 返回的是变量值

func make(t Type,size IntegerType) Type

make可以定义变量长度

make([]int, 1) 返回的是  [0] 即 make给变量分配的依然是零值

查看 变量类型 -

reflect.TypeOf
 
 
 
对于结构体的实例化 另一种方式 -  &human{ } ,那么返回的也是 一个 * human 指针 
 
golang之中 & 是对变量取地址,而*是对指针取值
I can see a bigger world.
原文地址:https://www.cnblogs.com/xuweiqiang/p/14511322.html