0%

Go 的处理异常逻辑是不引入 exception,支持多参数返回,所以你很容易的在函数签名中带上实现了 error Interface 的对象,交由调用者来判定。如果一个函数返回了 value, error,你不能对这个 value 做任何假设,必须先判定 error。唯一可以忽略 error 的是,如果你连 value 也不关心。

阅读全文 »

Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用database/sql包时必须注入(至少)一个数据库驱动。

我们常用的数据库基本上都有完整的第三方实现。例如:MySQL驱动

阅读全文 »

链表在Linux内核中可以说是一种最简单的、也是最普通的一种线性的数据结构。链表是一种存放和操作可变数量元素(通常我们称之为节点)的数据结构。

可以用最简单的数据结构来表示这样一个链表:

1
2
3
4
5
6
/* 一个链表中的一个一个元素 */
struct list_element
{
void *data; /* 有效数据 */
struct list_element *next; /* 指向下一个节点指针 */
};

下图描述一个链表结构体:

image-20210220120514901
阅读全文 »

排序算法对于我们程序员来讲肯定是不陌生的,我们平时工作的过程中肯定也遇到需要对数据就行排序的情况。现在大多数的高级语言已经对这些排序算法进行封装,并且性能也很不错,但是了解这些算法背后的思想却是很有必要的,能够很好提升我们思维。

十大经典排序算法为:冒泡,选择,插入、希尔、归并、快速、堆、计数、桶、基数

阅读全文 »