结构体基本使用(go语言基础语法)

1.struct简介

尚硅谷:

1.Golang 支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言,所以我们说 Golang 支持面向对象编程特性是比较准确的。

2.Golang 没有类(class),可以理解 Golang 是基于 struct 来实现 OOP 特性的。

3.Golang 面向对象编程非常简洁,去掉了传统 OOP 语言的继承、方法重载、构造函数和析构函数、隐藏的 this 指针等等

4.Golang 仍然有面向对象编程的继承,封装和多态的特性,只是实现的方式和其它 OOP 语言不一样,比如继承 :Golang 没有 extends 关键字,继承是通过匿名字段来实现。

5.Golang 面向对象(OOP)很优雅,OOP 本身就是语言类型系统(type system)的一部分,通过接口(interface)关联,耦合性低,也非常灵活,也就是说在Golang 中面向接口编程是非常重要的特性。

2.结构体基本用法

1.结构体的定义

type 结构体标识符 struct {
   字段名1 字段类型
   字段名2 字段类型
   ...
   字段名n 字段类型
}

显然,字段的类型可以为:基本类型、数组或引用类型

2.注意事项

1.字段名是否大写,决定了其是否公开
2.结构体是值类型

示例: 定义一个Person结构体,使其包含姓名、年龄和工作三个成员

type Person struct{
     Name  string
     Age   int
     Job   string
}

3.使用示例

当我们已经定义好一个结构体时便可以在定义变量的时候使用

var p1  Person

若我们没有给p1赋值
则会出现以下情况:

fmt.Println("p1=",p1)
//输出后的结果是:
//p1={0}

4.使用注意事项

1.当我们未对其进行赋值时,其各字段默认值是对应类型的0值。字符串的默认值是空串,我们看不到,而int型的默认值为0,所以我们看到输出fmt.Println(“p1=”,p1)的·结果是p1={0}。也就是是当我们声明(创建)一个结构体变量时,它的空间已经分配,只是由于未赋值,故为默认值。
2.默认值:布尔类型是 false ,数值是 0 ,字符串是 “”。数组类型的默认值和它的元素类型相关,比如 score [3]int 则为[0, 0, 0]。
3.指针,slice,和 map 的零值都是 nil ,即还没有分配空间。 如果需要使用这样的字段,需要先make,才能使用

当然,我们可以对该结构体变量进行赋值

Person.Name="tom"
Person.Age="20"
Person.Job="student"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是一只土拨鼠呐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值