首页后端开发GOgo的数据类型-复合数据类型-struct(一)

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

时间2023-04-26 12:48:01发布访客分类GO浏览465
导读:在Go语言中,struct是一种复合数据类型,它允许我们将多个不同类型的数据组合在一起,以便更方便地管理和操作。定义定义一个struct类型需要使用type关键字,结构体的定义方式与C语言类似,格式如下:type StructName st...

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

定义

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

type StructName struct {

    Field1 Type1
    Field2 Type2
    ...
    FieldN TypeN
}

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

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

type Person struct {

    Name string
    Age  int
}

初始化

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

person := Person{
Name: "Alice", Age: 30}
    

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

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

personPtr := new(Person)

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

访问

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

fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)

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

person.Age = 31
fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)

这将输出Name: Alice, Age: 31

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

go

若转载请注明出处: go的数据类型-复合数据类型-struct(一)
本文地址: https://pptw.com/jishu/9240.html
go的数据类型-复合数据类型-struct(二) go的数据类型-复合数据类型-map(一)

游客 回复需填写必要信息