因为发现用 Go 处理业务数据不太方便,经常要写很多重复的循环,所以就写了一个集合库,正好 Go 1.18 快出来了。
API 和示例代码都写在了 README 里,有英文和中文两种语言。
项目地址: https://github.com/sxyazi/go-collection
由于 Go 1.18 还没发布正式版,语言特性可能在发布后有所变化,因此本库目前仅作为试用,并且会跟随官方变化。
在试用时,需要使用 gotip 获取最新 master 分支的 Go ,因为 Go 1.18 Beta 2 仍有一些 Bug 。
有任何疑问或建议,欢迎创建 issue ,我会持续完善它 :(
1
whoisix 2022-02-10 23:20:21 +08:00 via Android
👍🏻
|
2
qfdk 2022-02-11 00:15:40 +08:00 via iPhone
感谢 但是 看到说明表示不敢用
|
4
fgwmlhdkkkw 2022-02-11 09:30:47 +08:00
你好,问一下`[T ~[]E, E any]`里面的`~`是什么意思呀?
|
5
fgwmlhdkkkw 2022-02-11 09:31:56 +08:00
|
6
yazi OP @fgwmlhdkkkw 抱歉刚看到,先前我对这个也有一些疑惑,以下为我的理解(部分转述官方回复):
`[]E` 是非 interface 类型,因此不是一个适当的约束条件(参考 https://github.com/golang/exp/blob/master/constraints/constraints.go ,这里面的约束都是 interface 。在 beta2 时,这些约束被内置在了 Go 里,因此可以直接 `import "constraints"`;在目前 master ,这些约束又被抽离到了 `golang/exp` package ) 因此如果想让他成为约束,需要这么写:`[T interface{ []E }, E any]`。但当 `E` 包含 `~` 或 `|` 时,它也被认为是一个 interface 约束。 |
7
fgwmlhdkkkw 2022-02-11 15:30:16 +08:00
@yazi 额,,我还是等正式发布吧……
|
8
fgwmlhdkkkw 2022-02-14 10:14:17 +08:00
|
9
yazi OP @fgwmlhdkkkw 不错的文章,谢谢分享
|
10
sanxiaozhizi 2022-02-18 16:22:53 +08:00
tql
|