【Go学习合集】进阶数据类型4 -------->结构体

定义

结构体(struct)是一种用户自定义的复合数据类型,它可以包含多个字段(field),每个字段可以是不同的类型。结构体常用于组织数据并表示复杂的数据结构。可以类比于java的对象

代码定义

定义person这样的一个结构体

type Person struct {
    Name string
    Age  int
}

定义及使用结构体

package main

import "fmt"

type Person struct {
	Name string
	Age  int
}

func main() {
	// 定义结构体
	p1 := Person{Name: "Alice", Age: 30}
	p2 := Person{Name: "Bob", Age: 40}
	p3 := &Person{Name: "Bob", Age: 30}
	fmt.Printf("p1 = %+v\n,p2 = %+v\n,p3= %+v\n", p1, p2, p3)
	// 访问和修改结构体
	fmt.Printf("p1.name = %s\n", p1.Name)
	p1.Age = 100
	fmt.Printf("p1.age = %d\n", p1.Age)
}

实现面向对象&&内嵌和组合

package main

import "fmt"

type Person struct {
	Name string
	Age  int
	*Dog
}

type Dog struct {
	Name string
	Age  int
}

func (p *Person) speak() {
	fmt.Printf("%s is %d years old\n", p.Name, p.Age)
}

func (d *Dog) speak() {
	fmt.Printf("%s 汪汪叫", d.Name)
}

func main() {
	// 定义结构体
	p3 := &Person{Name: "Bob", Age: 30, Dog: &Dog{Name: "Ang", Age: 30}}
	p3.speak()
	p3.Dog.speak()
}
-----------------------运行结果-------------------------
Bob is 30 years old
Ang 汪汪叫
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值