Go Struct
  YHTQQsaAg9bB 2023年11月02日 29 0
Go

结构体(简称struct)用于创建不同数据类型的成员集合,放入一个单一的变量中。虽然数组用于将相同数据类型的多个值存储在单一变量中,但结构体用于将不同数据类型的多个值存储在单一变量中。结构体对于将数据组合在一起以创建记录非常有用。

声明结构体

要在Go中声明一个结构体,请使用type和struct关键字:

语法

type 结构体名 struct {
  成员1 数据类型;
  成员2 数据类型;
  成员3 数据类型;
  ...
}

示例

在这里,我们声明了一个名为Person的结构体类型,其中包含以下成员:name、age、job和salary:

type Person struct {
  name string
  age int
  job string
  salary int
}

提示:请注意,上述结构体成员具有不同的数据类型。name和job是string类型,而age和salary是int类型。

访问结构体成员

要访问结构体的任何成员,使用结构体变量名称和结构体成员之间的点运算符(.):

示例

package main
import ("fmt")

type Person struct {
  name string
  age int
  job string
  salary int
}

func main() {
  var pers1 Person
  var pers2 Person

  // Pers1 详细信息
  pers1.name = "Hege"
  pers1.age = 45
  pers1.job = "Teacher"
  pers1.salary = 6000

  // Pers2 详细信息
  pers2.name = "Cecilie"
  pers2.age = 24
  pers2.job = "Marketing"
  pers2.salary = 4500

  // 访问并打印 Pers1 信息
  fmt.Println("Name: ", pers1.name)
  fmt.Println("Age: ", pers1.age)
  fmt.Println("Job: ", pers1.job)
  fmt.Println("Salary: ", pers1.salary)

  // 访问并打印 Pers2 信息
  fmt.Println("Name: ", pers2.name)
  fmt.Println("Age: ", pers2.age)
  fmt.Println("Job: ", pers2.job)
  fmt.Println("Salary: ", pers2.salary)
}

结果:

Name: Hege
Age: 45
Job: Teacher
Salary: 6000
Name: Cecilie
Age: 24
Job: Marketing
Salary: 4500

将结构体作为函数参数传递

您也可以将结构体作为函数参数传递,如下所示:

示例

package main
import ("fmt")

type Person struct {
  name string
  age int
  job string
  salary int
}

func main() {
  var pers1 Person
  var pers2 Person

  // Pers1 详细信息
  pers1.name = "Hege"
  pers1.age = 45
  pers1.job = "Teacher"
  pers1.salary = 6000

  // Pers2 详细信息
  pers2.name = "Cecilie"
  pers2.age = 24
  pers2.job = "Marketing"
  pers2.salary = 4500

  // 通过调用函数打印 Pers1 信息
  printPerson(pers1)

  // 通过调用函数打印 Pers2 信息
  printPerson(pers2)
}

func printPerson(pers Person) {
  fmt.Println("Name: ", pers.name)
  fmt.Println("Age: ", pers.age)
  fmt.Println("Job: ", pers.job)
  fmt.Println("Salary: ", pers.salary)
}

结果:

Name: Hege
Age: 45
Job: Teacher
Salary: 6000
Name: Cecilie
Age: 24
Job: Marketing
Salary: 4500

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 接口使用的最佳时机 下一篇: Go学习笔记3
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  uGYzDadp0Cs7   2024年04月18日   79   0   0 Go
  hyrB1Ag4eVs8   2024年04月15日   70   0   0 Go
  dHUS172Lkv6A   2024年05月08日   175   0   0 Go
  YFCZjJLTjJgW   2024年05月04日   51   0   0 Go
  YFCZjJLTjJgW   2024年05月17日   59   0   0 Go
  uGYzDadp0Cs7   2024年04月16日   118   0   0 Go
  YFCZjJLTjJgW   2024年05月17日   59   0   0 Go
YHTQQsaAg9bB