“我仍然记得早期与代码搏斗的日子。
基本的东西?我正要到那里。但后来出现了结构体,一切都变得模糊起来。我不断地破坏东西,我的代码一团糟。我做错了什么?
直到我坐下来,学习了 Go 结构体的基础知识,并开始有效地使用它们,事情才终于有了进展。那是转折点。突然间,代码变得更有组织、更高效、更干净。它改变了我编程的方式,我开始享受前所未有的编码乐趣。”
如果您也有同样的想法,想知道为什么结构如此强大,那么这篇文章就是为您准备的。让我带您经历揭开结构神秘面纱的旅程,并向您展示它们如何改变您的编码游戏!
什么是结构体?
在 Go 中,结构就像一个蓝图,允许您将不同类型的数据捆绑在一起。将其视为用于对人、汽车或书籍等复杂实体进行建模的自定义数据结构。
例如,Person 结构体可以保存人员姓名、年龄和性别等字段,非常适合对相关信息进行分组。
为什么使用结构体?
结构可帮助您将相关数据组织和捆绑在一起,从而更轻松地管理复杂的数据模型。无论您正在构建一个跟踪用户、产品还是库存的应用程序,结构都允许您对不同类型的数据进行分组,就像地址如何包含街道、城市和邮政编码一样。
声明结构体:基础知识
语法非常简单。您可以使用关键字 type 定义一个结构体,后跟结构体名称,然后是大括号内的字段:
type Person struct { Name string Age int Gender string }
现在您有一个 Person 结构体,其中包含三个字段:Name(字符串)、Age(int)和 Gender(字符串)。
访问和修改结构体字段
要访问结构体的字段,只需使用点 (.) 运算符:
fmt.Println("Name:", person.Name) fmt.Println("Age:", person.Age) fmt.Println("Gender:", person.Gender)
更改字段?简单的!您可以像修改任何其他变量一样修改这些值:
person.Age = 26 fmt.Println("Updated Age:", person.Age)
为什么程序员不信任结构体?
因为他们不想处理自己的“领域”
结构方法:添加行为
这就是事情变得更有趣的地方。您可以将方法附加到结构以赋予它们行为。这就像赋予结构做事的能力!
让我们为 Person 结构定义一个 Greet 方法:
func (p Person) Greet() string { return "Hello, my name is " + p.Name }
现在你可以让对方向你打招呼:
fmt.Println(person.Greet())
具有嵌套结构的结构:使事情变得复杂,但又简单
Go 结构体可以在其中保存其他结构体,当您想要对更复杂的数据进行建模时,这非常有用。想象一个 Student 结构,其中包含一个完整配置文件的 Address 结构:
type Address struct { City string State string } type Student struct { Name string Age int Address Address }
现在您可以创建一个学生并访问嵌套字段,如下所示:
student := Student{ Name: "Fred Gitonga", Age: 21, Address: Address{ City: "Kisumu", State: "Mamboleo", }, } fmt.Println(student.Name, "lives in", student.Address.City)
“程序必须编写供人阅读,并且只是顺便供机器执行。” — 哈罗德·阿贝尔森
结构体的常见错误
在使用结构之前,请注意以下常见陷阱:
熟能生巧!
结论:要点
如果 Go 结构体可以让我的编码变得更容易,那么它们肯定也会为你做同样的事情。快乐编码!
以上是学习 Go 结构最终如何让我爱上编码的详细内容。更多信息请关注PHP中文网其他相关文章!