go语言使用之结构体使用细节——结构体、组合结构体、OOP中继承的使用

本文详细探讨了Go语言中的结构体,包括结构体的定义、普通结构体的四种创建方式、组合结构体的概念及使用,以及结构体在面向对象编程中的继承特性。重点强调了组合结构体与继承结构体的区别在于名称前是否有别名,并提醒开发者注意声明方式的差异。
摘要由CSDN通过智能技术生成

本篇文章分析go中结构体使用细节,结构体、组合结构体、OOP中继承的使用。
为什么要写这篇文章?
因为在使用go的过程中我总是把组合结构体和结构体继承的声明方式搞混淆,因此写这篇博文来提醒自己注意两者的区别。

一、 结构体介绍:

1、概述
一个结构体(struct)就是一个字段的集合。

type Vertex struct {
    X int
    Y int
}

func main() {
    fmt.Println(Vertex{
  1, 2})
}

2、结构体字段的调用

type Vertex struct {
    X int
    Y int
}

func main() {
    v := Vertex{
  1, 2}
    v.X = 4
    fmt.Println(v.X)
}

3、结构体指针
结构体字段可以通过结构体指针来访问。
如果定义一个指向结构体的指针 p,那么可以通过 (*p).X 来访问其字段 X。但是这样写比较麻烦,因此go语言也允许我们使用隐式间接引用,直接写 p.X 就可以。

type Vertex struct {
    X int
    Y int
}

func main() {
    v := Vertex{
  1, 2}
    p := &v
    p.X = 1e9
    fmt.Println(v)
}

二、 普通结构体使用

创建结构体变量和访问结构体字段的方式有四种
方式1-直接声明
案例演示: var s student
方式2-{}字面量
案例演示: var s student = student {字段值1, 字段值2.. }
方式3-使用new关键字
案例: var s*= new (student )
方式4-指针
案例: var s*student = &student {}
代码如下:

/*结构体声明方式4种*/
type student struct {
    name string
    age int
    score float64
}
//方法显示信息
func (s *student) showInfor()  {
    fmt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值