变量声明的方式的区别?
来源:2-7 指针

拧壶冲
2020-11-15
老师,你好。
我看到变量的声明有不同的方式。比如:
(1) item := Item{}
也有
(2) item := &Item{}
也有
(3) item := new(Item)
我的理解 1和3是一样的,但是2是得到新对象的地址。但是1与2的区别是什么呢?比如在下面的情况下,有什么区别吗?
func GetItem() (Item, error) {
return &Item{}, error
}
与
// 这个代码好像会编译前就报错
func GetItem() (Item, error) {
return Item{}, error
}
写回答
1回答
-
ccmouse
2020-11-15
2和3是一样的,都是获得item的地址。1获得的就是item实例。所以会有那个编译错误。1和2具体要看你需要指针还是需要实例。new这种写法和2是一样的,但使用的不多
042020-11-17
相似问题