如何设置和获取Golang结构中的字段?

编程入门 行业动态 更新时间:2024-10-22 16:27:49
本文介绍了如何设置和获取Golang结构中的字段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

创建一个像这样的结构:

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)

没有打印,因为名称是空的。那么如何在结构体中设置和获取一个字段?

解析方法

b $ b

包主 导入fmt 类型Foo结构{名称字符串} SetName接收到一个指向Foo的指针,以便修改它。 func(f * Foo)SetName(name string){ f.name = name } //名字收到Foo的副本,因为它没有'不需要修改它。 func(f Foo)Name()string { return f.name } func main(){ //注意Foo { }。新的(Foo)只是一个用于& Foo {} //的语法糖,我们不需要指向Foo的指针,所以我替换了它。 //然而,与问题无关。 p:= Foo {} p.SetName(Abc) name:= p.Name() fmt.Println(name)}

测试并采用 Go Tour of Go 了解更多关于方法和指针的知识,以及基础知识根本就是Go。

After creating a struct like this:

type Foo struct { name string } func (f Foo) SetName(name string){ f.name=name } func (f Foo) GetName string (){ return f.name }

How do I create a new instance of Foo and set and get the name? I tried the following:

p:=new(Foo) p.SetName("Abc") name:=p.GetName() fmt.Println(name)

Nothing gets printed, because name is empty. So how do I set and get a field inside a struct?

解决方案

Commentary (and working) example:

package main import "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) }

Test it and take A Tour of Go to learn more about methods and pointers, and the basics of Go at all.

更多推荐

如何设置和获取Golang结构中的字段?

本文发布于:2023-07-30 00:35:31,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字段   如何设置   结构   Golang

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!