golang内置函数 new()与make()的区别

使用new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针)
实际使用如下

	ints := new([]int)  //创建一个切片  这时ints是指针类型
	*ints = append(*ints, 1,123,4,56,7,8,89,8,7)  //使用必须先用*取值 
	fmt.Println(*ints) //如果想打印结果是切片里的值也必须使用*取值  [1 123 4 56 7 8 89 8 7]

使用 make(T,len) 返回初始化之后的 T 类型的值 而不是切片
可以直接使用

	ints := make([]int,0)
	ints = append(ints, 1,123,4,56,7,8,89,8,7)
	fmt.Println(ints)

总结一下
new返回指针 适用于 值类型,如数组、结构体,
make返回具体的值 make() 只适用于 slice、map 和 channel.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值