go语言面向编程思想

简介: go语言面向编程思想

面向思想

面向对象:将功能封装进对象,是具有功能的对象,解决问题需要哪些对象,将功能类似的对象封装在一起,用的时候找到对应


完成需求:找一个具有所需功能的对象,如果对象不存在,就去构建一个,目的简化开发并提高复用


面向过程:功能行为,解决问题需要那些步骤


面向对象是相对面向过程而言,他们都是一种思想;要做一件事情思考:是什么,为什么,怎么做,一步步去实现


通俗一点说:面向过程是要我们一步步去实现最终过程,面向对象是直接通过封装好的直接使用,达到最终结果


转到我们实际应用中:对于一个项目,要完成,首先从底层开始,从具体到一个类开始实现,搭建一个类,利用类去创建对象,对象是类的存在,面向对象首先需要去考虑创建哪些类,再利用类去创建多少个对象


类的实现和对象的创建

类是描述事务的属性和行为方式,go中的结构体刚好解决该问题,通过直接定义变量来接收结构体并且赋值,来实现对象的创建,通过首字母大小写来控制公私有


面向对象特征

封装,继承,多态


封装性:

我们通过首字母大小写对我们想公开或隐藏的数据进行公私,例子:我们通过公有化一个结构体,私有化它的内部变量,并公有化一个方法来进行对其变量进行赋值,对于其他接收这个结构体的对象而言,不能直接对结构体中的变量进行赋值,而是在创建的时候创建空结构体或者使用new来进行创建,通过其结构体实现的公开方法来进行对其变量进行赋值


封装的目的:防止外部获得管理权,将管理权赋予内部,同时外部只能通过其结构体的方法来进行调用或者赋值其变量,安全


继承性:

结构体继承:go语言中秉持组合大于继承,即结构体内嵌结构体,以此来实现继承,同时如果有名称重复,则考虑就近原则

方法继承:go中结构体内嵌结构体,子类同时还可以实现继承父类的方法,如果方法同名的话,子类还可以对方法进行重写,通知书还可以还可以调用父类的方法。

无论是属性继承还是方法的继承,子类都只能访问父类,父类不能访问子类


多态性

多态就是某一类事务的多种形态

go语言中通过接口来来实现多态,编写就扣就是一些抽象的性行为的合集,从而和实现接口的类区分开来

使得代码可以分散在不同的对象


go中通过byte来保存单字节,字符 通过rune来保存汉字

相关文章
|
3天前
|
存储 算法 Go
go语言中的延迟执行函数
【5月更文挑战第13天】`defer`是Go语言中用于延迟执行函数的关键字,尤其适用于资源管理,如文件关闭和锁的释放。它在函数返回前按照LIFO顺序执行,确保资源在任何返回路径下都能正确释放。`defer`可以拦截`panic`并在函数返回前执行,但无法阻止某些致命的`panic`。此外,`defer`可用于修改返回值、输出调试信息和还原变量值。尽管在某些场景下可能影响性能,但Go的优化使得其在多数情况下性能表现良好,特别是在资源清理方面。在Go 1.20及以后的版本,`defer`的性能已显著提升,尤其是在高计算量的场景下。
221 2
|
7天前
|
安全 Go 调度
Go语言中的并发编程
Go语言自带了强大的并发编程能力,它的协程机制可以让程序轻松地实现高并发。本文将从并发编程的基础概念出发,介绍Go语言中的协程机制、通道和锁等相关知识点,帮助读者更好地理解并发编程在Go语言中的实践应用。
|
2天前
|
存储 Go
Go 语言用途
Go 语言用途
17 3
|
2天前
|
安全 Go
Go 语言特色
Go 语言特色
8 3
|
2天前
|
Go
Go 语言教程
Go 语言教程
10 3
|
5天前
|
数据采集 Web App开发 Go
Go语言与chromedp结合:实现Instagram视频抓取的完整流程
使用Go语言和chromedp库,本文展示了如何抓取Instagram的视频文件,同时通过代理IP保障爬虫稳定和隐私。步骤包括安装chromedp、配置代理(如亿牛云),创建Chrome会话,导航至Instagram,提取视频URL,然后下载视频。关键操作有设置代理服务器、启动Chrome会话、抓取和下载视频。提供的代码示例详细解释了实现过程,有助于开发者学习Instagram数据采集。
Go语言与chromedp结合:实现Instagram视频抓取的完整流程
|
5天前
|
缓存 Go 调度
浅谈在go语言中的锁
【5月更文挑战第11天】本文评估了Go标准库`sync`中的`Mutex`和`RWMutex`性能。`Mutex`包含状态`state`和信号量`sema`,不应复制已使用的实例。`Mutex`适用于保护数据,而`RWMutex`在高并发读取场景下更优。测试显示,小并发时`Mutex`性能较好,但随着并发增加,其性能下降;`RWMutex`的读性能稳定,写性能在高并发时低于`Mutex`。
138 0
浅谈在go语言中的锁
|
6天前
|
存储 安全 编译器
go语言中进行不安全的类型操作
【5月更文挑战第10天】Go语言中的`unsafe`包提供了一种不安全但强大的方式来处理类型转换和底层内存操作。包含两个文档用途的类型和八个函数,本文也比较了不同变量和结构体的大小与对齐系数,强调了字段顺序对内存分配的影响。
91 8
go语言中进行不安全的类型操作
|
6天前
|
Go
配置go语言下载包 - 蓝易云
这个命令会将包下载到你的GOPATH目录下,并自动安装它。
68 1
|
9天前
|
Ubuntu Unix Linux
【GO基础】1. Go语言环境搭建
【GO基础】1. Go语言环境搭建