64 条回复  ·  927 次点击
mark2025 小成 2024-8-19 23:44:17
@DOLLOR ts 看起来似乎顺眼些~
yumenaka 小成 2024-8-20 09:08:22
作为一个调库的低水平用户,range ofer func 让我少写了不少模板代码。
因为调库的地方,总是比写库的地方多,我的项目的阅读难度其实是下降了。

复杂性从来都不会消失,只是被封装。
抱怨第三方库会因此变难的用户,技能应该比我熟练,经常阅读第三方库。但做的工作,又没有涉及更底层的部分吧。

至于语法与格式……
用 go 的人,不是从一开始就接受了 go fmt 吗?
june4 小成 2024-8-20 09:24:35
@xz410236056 其它语言也都有生成器,比如 js 也有生成器协议,但人家同时还有 yield 语法糖可以掩盖底下丑陋的协议,用起来象 return 一样简单可读,没人会直接用原始协议的格式来写生成器,太丑了。
allenby 小成 2024-8-20 12:42:51
看着像是在循环的时候返回本身和索引
lveye 小成 2024-8-20 16:57:46
官方的例子是这个 https://go.dev/wiki/RangefuncExperiment ,一样的东西。看着还挺不错,满足这 2 个一级函数就可以进行 for range 。

type Seq[V any] func(yield func(V) bool)

type Seq2[K, V any] func(yield func(K, V) bool)
1234567
返回顶部