在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类型的变量,并为其字段赋值。最后,我们通过链式点操作符.来访问嵌套结构体变量的字段。