【发布时间】:2012-06-12 03:25:18
【问题描述】:
以下代码创建结构的可用实例Car。这与使用new(Car) 有何不同?
例子:
type Car struct {
make string
}
func Main() {
var car Car; // how is this different than "car := new(Car)"?
car.make = "Honda"
}
【问题讨论】:
标签: go
以下代码创建结构的可用实例Car。这与使用new(Car) 有何不同?
例子:
type Car struct {
make string
}
func Main() {
var car Car; // how is this different than "car := new(Car)"?
car.make = "Honda"
}
【问题讨论】:
标签: go
一个定义一个 Car 变量,另一个返回一个指向 Car 的指针。
var car Car // defines variable car is a Car
car2 := new(Car) // defines variable car2 is a *Car and assigns a Car to back it
car := new(Car) 可以相对于var car Car 像这样实现:
var x Car
car := &x
【讨论】:
var x Car; car := &x 也等价于更惯用的形式:car := &Car{}
new 在 freestore 而非堆栈上分配?