Golang 的泛型能干什么
目录
Golang在1.18版本支持了泛型, 在工作中还没有真正用过, 这几天研究了一下,脑子里最先想到的使用场景就是集合类型的处理。
常用的集合处理函数 map
, redude
等, 在别的语言中都是直接支持的,例如 PHP 中的 array_map
, array_reduce
。
但是 golang 之中只能使用 for 循环,现在有了泛型,让实现 map
, reduce
变的简单了, 相比使用 interface
,性能也更好。
代码实现:
|
|
使用
|
|
除了 map
, reduce
还有其他的函数也可以使用泛型实现。
我写了一个这样的工具包: https://github.com/lyuangg/mr
实现了:map
, reduce
, Contains
, ToMap
, Filter
, Diff
, Intersect
, Unique
, Merge
等函数。