首页  >  文章  >  后端开发  >  学习 Go 结构最终如何让我爱上编码

学习 Go 结构最终如何让我爱上编码

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-07 16:08:29525浏览

“我仍然记得早期与代码搏斗的日子。
How Learning Go Structs Finally Made Me Love Coding

基本的东西?我正要到那里。但后来出现了结构体,一切都变得模糊起来。我不断地破坏东西,我的代码一团糟。我做错了什么?
直到我坐下来,学习了 Go 结构体的基础知识,并开始有效地使用它们,事情才终于有了进展。那是转折点。突然间,代码变得更有组织、更高效、更干净。它改变了我编程的方式,我开始享受前所未有的编码乐趣。”
如果您也有同样的想法,想知道为什么结构如此强大,那么这篇文章就是为您准备的。让我带您经历揭开结构神秘面纱的旅程,并向您展示它们如何改变您的编码游戏!

How Learning Go Structs Finally Made Me Love Coding

什么是结构体?
在 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)


为什么程序员不信任结构体?
因为他们不想处理自己的“领域”
How Learning Go Structs Finally Made Me Love Coding

结构方法:添加行为

这就是事情变得更有趣的地方。您可以将方法附加到结构以赋予它们行为。这就像赋予结构做事的能力!

让我们为 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)



“程序必须编写供人阅读,并且只是顺便供机器执行。” — 哈罗德·阿贝尔森

结构体的常见错误

在使用结构之前,请注意以下常见陷阱:

  1. 未初始化的字段:如果您不初始化字段,Go 会自动为字段分配默认的零值(例如整数为 0 或字符串为“”)。
  2. 不需要时使用指针:对于小型结构,通过值传递它们通常比通过引用传递它们更有效。

熟能生巧!

  1. 简单:创建一个包含标题、作者和页面字段的 Book 结构。编写一个显示书籍信息的方法。
  2. 中级:创建一个包含多个 Book 结构的 Library 结构。编写方法来添加书籍并列出图书馆中的所有书籍。
  3. 高级:构建车辆结构并使用 Fleet 结构管理车队,完成按年份添加、删除和搜索车辆。

结论:要点

  1. 结构体对于 Go 中相关数据的分组至关重要。
  2. 您可以使用方法甚至嵌套结构来增强结构。
  3. 当需要修改函数内的原始结构时,请使用指针。

如果 Go 结构体可以让我的编码变得更容易,那么它们肯定也会为你做同样的事情。快乐编码!

How Learning Go Structs Finally Made Me Love Coding

以上是学习 Go 结构最终如何让我爱上编码的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn