如何在struct方法中设置和获取字段

创建像这样的结构后:


type Foo struct {

    name string

}


func (f Foo) SetName(name string) {

    f.name = name

}


func (f Foo) GetName() string {

    return f.name

}

如何创建Foo的新实例并设置并获取名称?我尝试了以下方法:


p := new(Foo)

p.SetName("Abc")

name := p.GetName()


fmt.Println(name)

没有打印任何内容,因为名称为空。那么如何设置结构中的字段?

https://play.golang.org/p/_xkIc-n6Wbk

UYOU
浏览 252回答 3
3回答

墨色风雨

评论(和工作)示例:package mainimport "fmt"type Foo struct {    name string}// SetName receives a pointer to Foo so it can modify it.func (f *Foo) SetName(name string) {    f.name = name}// Name receives a copy of Foo since it doesn't need to modify it.func (f Foo) Name() string {    return f.name}func main() {    // Notice the Foo{}. The new(Foo) was just a syntactic sugar for &Foo{}    // and we don't need a pointer to the Foo, so I replaced it.    // Not relevant to the problem, though.    p := Foo{}    p.SetName("Abc")    name := p.Name()    fmt.Println(name)}测试它并进行Go之旅,以全面了解有关方法和指针以及Go的基础知识。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go