Go 语言结构体 14

Go 语言中的结构体是一种复杂数据类型,用于存储多个字段的值。结构体可以用来表示复杂的数据对象,例如学生、员工、商品等。

结构体声明

结构体可以使用以下语法声明:

type structName struct {
    field1 type1
    field2 type2
    ...
}

其中,structName 是结构体的名称,field1field2 等是结构体的字段,type1type2 等是字段的类型。

例如:

type Person struct {
    name string
    age  int
    addr string
}

这将声明一个名为 Person 的结构体,它有三个字段:nameage 和 addr

结构体字段访问

结构体字段可以使用点号(.)访问。例如:

p := Person{"John", 30, "New York"}
fmt.Println(p.name) // John
fmt.Println(p.age) // 30
fmt.Println(p.addr) // New York

结构体方法

结构体可以定义方法。方法是一个函数,它可以访问结构体的字段和其他方法。例如:

type Person struct {
    name string
    age  int
}

func (p *Person) sayHello() {
    fmt.Println("Hello, my name is", p.name)
}

func main() {
    p := &Person{"John", 30}
    p.sayHello() // Hello, my name is John
}

这将声明一个名为 sayHello 的方法,它可以访问结构体的 name 字段。方法可以使用指针接收者(*Person),这样方法可以修改结构体的字段。

结构体嵌套

结构体可以嵌套。例如:

type Address struct {
    street string
    city   string
    state  string
}

type Person struct {
    name string
    age  int
    addr *Address
}

func main() {
    addr := &Address{"123 Main St", "New York", "NY"}
    p := &Person{"John", 30, addr}
    fmt.Println(p.addr.street) // 123 Main St
}

这将声明一个名为 Address 的结构体,它有三个字段:streetcity 和 state。然后声明一个名为 Person 的结构体,它有三个字段:nameage 和 addraddr 字段是一个指向 Address 结构体的指针。

结构体使用

结构体可以用于表示复杂的数据对象。例如:

type Student struct {
    name string
    age  int
    grades []int
}

func main() {
    s := &Student{"John", 20, []int{90, 80, 70}}
    fmt.Println(s.name) // John
    fmt.Println(s.age) // 20
    fmt.Println(s.grades) // [90 80 70]
}

这将声明一个名为 Student 的结构体,它有三个字段:nameage 和 gradesgrades 字段是一个 slice,可以存储多个成绩。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值