有一个像这样的简单结构:
type Event struct {
Id int
Name string
}
这两种初始化方法有什么区别呢?
e1 := Event{Id: 1, Name: "event 1"}
e2 := &Event{Id: 2, Name: "event 2"}
为什么我要使用这两种初始化方法?
第一种方法
e1 := Event{Id: 1, Name: "event 1"}
正在初始化变量e1
作为具有类型的值Event
.
第二
e2 := &Event{Id: 1, Name: "event1"}
is initializing e2
as a pointer to a value of type Event
As you stated in the comments, the set of methods defined on a value of a given type are a subset of the set of methods defined on a pointer to a value of that type. This means that if you have a method
func (e Event) GetName() string {
return e.Name
}
然后两个e1
and e2
可以调用此方法,但如果您有其他方法,请说:
func (e *Event) ChangeName(s string) {
e.Name = s
}
Then e1
无法使用ChangeName
方法,同时e2
is.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)