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之中 & 是对变量取地址,而*是对指针取值