在Go语言中,结构体(Struct)是一种用户自定义的数据类型,它允许你组合不同类型的字段来表示一个复杂的数据结构。结构体可以被看作是一种模板,用于创建具有相同属性和方法的对象。
下面是一个简单的结构体的示例代码:
package main
import "fmt"
// 定义一个结构体类型 type Person struct { name string age int }
func main() { // 创建一个结构体变量 p1 := Person{"Alice", 25}
// 访问结构体字段 fmt.Println("Name:", p1.name) fmt.Println("Age:", p1.age) }
在上面的代码中,我们定义了一个名为Person
的结构体类型,它有两个字段name
和age
,分别表示人的姓名和年龄。然后,在main
函数中,我们创建了一个名为p1
的Person
类型的变量,并为其字段赋值。最后,我们通过点操作符.
来访问结构体变量的字段。
除了基本类型字段之外,结构体还可以包含其他自定义结构体类型的字段,形成更复杂的数据结构。下面是一个嵌套结构体的示例代码:
package main
import "fmt"
// 定义一个嵌套结构体类型 type Address struct { city string state string }
// 定义一个包含嵌套结构体类型的结构体类型 type Person struct { name string age int addr Address }
func main() { // 创建一个结构体变量 p1 := Person{ name: "Alice", age: 30, addr: Address{ city: "New York", state: "NY", }, }
// 访问嵌套结构体字段 fmt.Println("City:", p1.addr.city) fmt.Println("State:", p1.addr.state) }
在上面的代码中,我们定义了一个名为Address
的嵌套结构体类型,它有两个字段city
和state
,分别表示城市的名称和州/省的名称。然后,我们定义了一个名为Person
的结构体类型,它包含一个名为addr
的嵌套结构体类型的字段。在main
函数中,我们创建了一个名为p1
的Person
类型的变量,并为其字段赋值。最后,我们通过链式点操作符.
来访问嵌套结构体变量的字段。