
实际使用中,如果需要*T 类型,一般&T{},很少能想起来用 new
1 aababc 151 天前 完蛋,我都是 new |
2 hwdq0012 151 天前 *(T*)0 |
3 MIUIOS 151 天前 其实我也好奇,这个 new 是干嘛的 |
4 unused 151 天前 *int 呢 |
5 bunny189 151 天前 我经常用 new |
6 kdwnil 151 天前 我混用的,想起哪个就用哪个,除非有人告诉我那个项目一定要用其中一种 |
7 KaynW 151 天前 我觉得 Go 最不常使用的关键字是 fallthrough |
8 Desdemor 150 天前 创建空结构体我都是用的 new 啊 |
9 whahuzhihao 150 天前 依赖 ide 检查类是否实现了接口会用到 var _ XXXInterface = new(XXXImpl)。 比&XXXimpl{}看起来舒服点 |
10 bv 150 天前 |
11 Jzdoxc 150 天前 @whahuzhihao 我们都是这样用的, var _ xxinterface = (*XXXimpl)(nil) |
12 zzhaolei 145 天前 我一直都是 var xx *structType ,从来没用过 new 。。。var 的更清晰 |
13 zzhaolei 145 天前 @zzhaolei 清晰明确,也更地道。 var b *Struct b = &Struct{ xxx } // 这种我觉得没有 var 的明确,如果 Struct 中有其他的指针,使用 new 是不会给申请对应的内存的,所以没什么大的优点 b := new(Struct) b.xxx b = &Struct{ xxxx } 比如 11 楼说的,var _ xxinterface = (*XXXimpl)(nil) 明确表示了不分配内存,并且是指针,而 9 楼的 var _ XXXInterface = new(XXXImpl) 这个用法就不是很明确,虽然编译器会优化这个检查,实际上并不分配内存,但是需要一层理解。当然写多了也都知道。 |