希望这能成为一个有趣的一幕,与现有的动态调度机制(接口)相比,Go 泛型是如何实现的。 为了将我们的讨论与 Go 标准库和实验存储库的混乱细节分离,并能够专注于更小、更简单的代码示例,我在更简单的排序算法上重新实现了此比较,其中性能差异也体现在后面。 冒泡排序 首先是冒泡排序。 Bubblesort animation from Wiki...
排序是新泛型功能的一个非常自然的用例。 在Go中对slice进行排序是以前每次有新的slice类型时都要重新编写的事情之一。有时你会为两种不同的类型使用相同的代码。 从Go 1.18开始,由于新的泛型功能,这不再是一个问题了。 你可以编写一个单一的通用排序函数,它适用于任何数值可以被排序的类型。 你可以使用golang....
使用Go实现Raft系列(译文版) - yuque.com/chenjiayang/b 比较Kotlin和Go对monkey语言的实现2:性能部分 - medium.com/@mario.arias Go泛型版本排序比标准库sort.Int快3倍 - github.com/golang/go/is 将Go并发模式应用于数据管道 - medium.com/amboss/apply Go播客:Go工具链团队访谈 - changelog.com/gotime/...
随着Go1.18 发布,泛型已经到来。 一组新的排序函数也已经进入 Go [1]的 golang.org/x/exp/slices [2] 包。这些函数利用 Go 泛型提供更符合人体工程学的排序 API(无需用户实现sort.Interface [3]),并且还提供了不错的性能改进,如上面 CL 所示。 在这篇文章中,我将深入探讨为什么这些泛型函数比sort包中的...