Golang面向对象编程(一)

结构体

基本介绍

基本介绍

  • Go支持面向对象编程特性,包括封装、继承和多态,但Go中没有类(class)而是基于结构体(struct)来实现OOP特性的。
  • 结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体,结构体中的成员称为结构体的字段。
  • 在编程过程中,通常将一类事物的特性提取出来,形成一个结构体类型,然后基于这个结构体类型创建出多个实例。

结构体定义方式

结构体定义方式

Go中结构体定义的基本语法如下:

在这里插入图片描述

使用案例如下:

// 定义结构体
type Student struct {
   
	Name   string
	Age    int
	Gender string
}

结构体是值类型,不同结构体变量的字段是独立的,互不影响。如下:

在这里插入图片描述

说明一下:

  • 结构体中字段的类型可以是任意类型,包括基本数据类型、数组、引用类型以及自定义类型。

创建结构体变量

创建结构体变量

方式一: 指明结构体的类型,结构体字段采用对应的默认值。

var stu1 Student
fmt.Printf("stu1 = %v\n", stu1)      // stu1 = { 0 }
fmt.Printf("stu1 type = %T\n", stu1) // stu1 type = main.Student

方式二: 指明结构体的类型,并初始化结构体字段。

var stu2 = Student{
   "Alice", 12, "女"}
fmt.Printf("stu2 = %v\n", stu2)      // stu2 = {Alice 12 女}
fmt.Printf("stu2 type = %T\n", stu2) // stu2 type = main.Student

方式三: 指明结构体的类型,并通过字段名的方式初始化结构体字段。

var stu3 = Student{
   
	Name:   "Alice",
	Age:    12,
	Gender: "女",
}
fmt.Printf("stu3 = %v\n", stu3)      // stu3 = {Alice 12 女}
fmt.Printf("stu3 type = %T\n", stu3) // stu3 type = main.Student

方式四: 通过new函数创建指定类型的结构体变量,得到指向结构体变量的指针。

var stu4 = new(Student)
fmt.Printf("stu4 = %v\n", stu4)      // stu4 = &{ 0 }
fmt.Printf("stu4 type = %T\n", stu4) // stu4 type = *main.Student

方式五: 指明结构体的类型,并初始化结构体字段,得到指向结构体变量的指针。

var stu5 = &Student{
   "Alice", 12, "女"}
fmt.Printf("stu5 = %v\n", stu5)      // stu5 = &{Alice 12 女}
fmt.Printf("stu5 type = %T\n", stu5) // stu5 type = *main.Student

方式六: 指明结构体的类型,并通过字段名的方式初始化结构体字段,得到指向结构体变量的指针。

var stu6 =
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2021dragon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值