Golang

Golang 泛型编程初体验

Go 1.18 加入了对泛型的支持。本文将使用切片反转和对象排序两个示例场景来演示泛型的使用。 开始前,我们先了解一下泛型的基本概念。 1 泛型是什么? 泛型(Generics)是编程语言中的一种范式,其允许在定义类(Go 中的结构体)、接口和方法(函数)时使用类型参数(Type Parameters)。这些类型参数可以用来描述方法的参数类型或者类与接口的属性类型,从而使得代码可以在不同类型之间进行重用,而不必进行类型转换或使用 Object(Go 中的 interface{})类型来处理。

阅读更多

使用 Golang 实现喜马拉雅音频下载

「喜马拉雅」是本人非常喜欢的一款音频软件。里面有很多优质的音频节目,丰富了我的日常生活。 本文的诞生来自于我的个人需求:本人是喜马拉雅 APP 的重度用户,几乎每天都会使用其来听一些经典,它的确是给了我「每一天的精神食粮」。有时,有一些音频想下载下来反复听,但受限于手机的存储容量,不能随心将想听的音频进行下载。因此,便萌生了写点代码将音频下载到 U 盘,电脑或 MP3 设备的想法。

阅读更多

Golang 高效的字符串拼接方法

日常编码中离不开字符串拼接,最常用的当属原生的拼接方式(+=)。但其在少量次数拼接中性能还可以,若进行大量的字符串拼接则应使用其它更高效的方式。 本文首先列出 Golang 中常用的几种字符串拼接方式,然后会对它们进行基准测试,以期阅读完本文,我们能对各种拼接方法的适用场景有一个基本了解。 1 字符串拼接有几种方法? 孔乙己问:“回字有几种写法?”。我们在 Golang 使用中也难免会被问到:“字符串拼接有几种方法?”。下面就一一道来。

阅读更多

LeetCode 707 设计链表

1 题目描述 设计链表的实现。您可以选择使用单链表或者双链表来实现。 单链表中的节点应有val和next两个属性,val为当前节点的值,next为下一个节点的指针或引用。 若使用双链表实现,则需要一个额外的属性prev来指向当前节点的前一个节点。

阅读更多