前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go的数据类型-复合数据类型-struct(一)

go的数据类型-复合数据类型-struct(一)

原创
作者头像
堕落飞鸟
发布2023-04-19 21:34:54
2010
发布2023-04-19 21:34:54
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

在Go语言中,struct是一种复合数据类型,它允许我们将多个不同类型的数据组合在一起,以便更方便地管理和操作。

定义

定义一个struct类型需要使用type关键字,结构体的定义方式与C语言类似,格式如下:

代码语言:javascript
复制
type StructName struct {
    Field1 Type1
    Field2 Type2
    ...
    FieldN TypeN
}

其中,StructName为结构体类型的名称,Field1Field2等为结构体中的字段名,Type1Type2等为字段对应的类型。注意,结构体字段的顺序非常重要,因为它们在内存中的排列顺序就是定义时的顺序。

以下是一个简单的示例,定义了一个Person结构体类型,包含NameAge两个字段:

代码语言:javascript
复制
type Person struct {
    Name string
    Age  int
}

初始化

在Go中,我们可以使用多种方式初始化一个struct类型的值。最常见的方式是使用结构体字面量,格式为{Field1: Value1, Field2: Value2, ..., FieldN: ValueN}。例如,我们可以用以下方式初始化一个Person结构体类型的值:

代码语言:javascript
复制
person := Person{Name: "Alice", Age: 30}

这将创建一个名为person的变量,并将其初始化为一个名为Alice、年龄为30Person结构体。

另一种初始化方式是使用new关键字。这将创建一个指向新分配的结构体的指针。例如,我们可以使用以下代码创建一个指向Person结构体类型的指针:

代码语言:javascript
复制
personPtr := new(Person)

这将创建一个名为personPtr的指针变量,指向一个新分配的Person结构体类型的值,其中所有字段都被初始化为其对应类型的零值。

访问

我们可以使用点号.来访问结构体类型的字段,例如:

代码语言:javascript
复制
fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)

这将输出Name: Alice, Age: 30。如果我们想要修改结构体类型的字段,则可以通过点号来赋值:

代码语言:javascript
复制
person.Age = 31
fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)

这将输出Name: Alice, Age: 31

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义
  • 初始化
  • 访问
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com