暂时未有相关云产品技术能力~
暂无个人介绍
今天,我们就来走进面向对象编程的理想国(一)——深入理解一下 Python 中的面向对象编程(Object-Oriented Programming, OOP)。
前面的文章中,了解到 Go 语言不是一种传统意义上的面向对象语言,因此 Go 没有类和继承的概念。 但是面向对象的功能很强大而且很实用,前一篇文章中已经了解到可以通过嵌入类型来实现 Has-a 的关系。 这一篇文章将通过学习接口来看到 Go 通过结构体、方法和接口实现面向对象的功能。
重要的是要记住,在 Go 中,子类型或子类的概念真的不存在,这些设计模式应该被避免。
虽然从技术上讲 Go 不是面向对象的编程语言,但类型和方法允许采用面向对象的编程风格。最大的不同是 Go 不支持类型继承,而是有接口的概念。在本文中,我们将重点介绍 Go 对方法和接口的使用。
栈也有许多真实生活示例。考虑在食堂中彼此堆叠的板的简单示例。栈有点像洗碟子然后堆碟子,最先洗的一定是最上面的碟子,然后洗干净后,放到碟子的最下面。第一个放好的碟子永远是最后一个被取用的。可以简单地看到它遵循 LIFO / FILO 原则。
一般排序算法最常考的:快速排序和归并排序。这两个算法体现了分治算法的核心观点,而且还有很多出题的可能。
一般排序算法最常考的:快速排序和归并排序。这两个算法体现了分治算法的核心观点,而且还有很多出题的可能。
堆排序是一种树形选择排序算法。简单选择排序算法每次选择一个关键字最小的记录需要 O(n) 的时间,而堆排序选择一个关键字最小的记录需要 O(nlogn) 的时间。
选择排序(selection sort)是一种原地(in-place)排序算法,适用于数据量较少的情况。由于选择操作是基于键值的且交换操作只在需要时才执行,所以选择排序长用于数值较大和键值较小的文件。
在插入排序中,在待排序序列的记录个数比较少,而且基本有序,则排序的效率较高。 1959 年,Donald Shell 从“减少记录个数” 和 “基本有序” 两个方面对直接插入排序进行了改进,提出了希尔排序算法。
冒泡排序是一种最简单的交换排序算法。什么是交换?交换就是两两进行比较,如果不满足次序就可以交换位置。比如,我们想要从小到大排序,通过两个位置上的值两两比较,如果逆序就交换,使关键字大的记录像泡泡一样冒出来放在末尾。
插入排序有点像小时候我们抓扑克牌的方式,如果抓起一张牌,我们放在手里;抓起第二张的时候,会跟手里的第一张牌进行比较,比手里的第一张牌小放在左边,否则,放在右边。因此,对所有的牌重复这样的操作,所以每一次都是插入最正确的排序顺序,直到牌抓完为止。
在我们学习汉字的时候,发现有一个生僻字的话,我们会使用字典。字典这种数据组织方式就是为了方便查询的操作的,那么 Go 语言中有没有这样的方式来存储数据呢?当然是有,maps。
切片可以算是数组的一部分。 像数组一样,切片亦是可索引的并且有长度。 与数组不同,切片这个长度是可以改变的。
数据~数据~数据~重要的事情说三遍,数据为王的时代。我们的数据怎么管理很重要,今天就来学习学习 Go 语言内置的 3 种与数据为舞的类型:数组、切片和映射。今天的文章先来学习一下数组。
上一章中,我们学会了变量与常量,为了让我们的程序更加贴近实际生活,有时候我们需要做决定。 Go 提供了如下三种控制结构:if/else 语句、switch 语句、for 语句
变量是可以改变的,变量有自己的类型和名字,常量是一种创建命名标识符的方法,该标识符的值永远不会改变。它们还为语言提供了难以置信的灵活性。