V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Nazz  ›  全部回复第 2 页 / 共 45 页
回复总数  895
1  2  3  4  5  6  7  8  9  10 ... 45  
package main

type Vector[T any] []T

func (c Vector[T]) Range(f func(i int, v T) bool) {
for i := 0; i < len(c); i++ {
if !f(i, c[i]) {
return
}
}
}

func main() {
var vec = Vector[int]{1, 3, 5, 7, 9}
for i, v := range vec.Range {
println(i, v)
}
}
@Morii 这样好理解吗

package main

type Vector[T any] []T

func (c Vector[T]) Range(f func(i int, v T) bool) {
for i := 0; i < len(c); i++ {
f(i, c[i])
}
}

func main() {
var vec = Vector[int]{1, 3, 5, 7, 9}
for i, v := range vec.Range {
println(i, v)
}
}
笑了, 这么多人又菜又爱喷

经常写数据结构的人不会对这个接口感到陌生:

```go
type Ranger[K comparable, V any] interface {
Range(k K, v V) bool
}
```

有了 range over func 语法糖, 可以非常方便地返回上层函数
@guanzhangzhang 原来如此👍🏻
@knva 我去找找看
@knva 我只会插读卡器里用 ubuntu desktop 扩容, 开发板里面热扩容是怎么做的? 我尝试过会报错, device is busy
@fugu37 树莓派是这么干的吗
@guanzhangzhang 这样是不是会让 img 文件变得很大, 有没有办法让 rootfs 自适应 SD 卡容量 ?
@yinmin 这个也是写入后再扩容的方案. 试了下, 扩容后开不了机, 不知道是什么原因
@yinmin 写入后再扩容已经搞定了
实现一个不难,难的是性能和可靠性
@XuHuan1025 赶紧去艾特
@dwu8555 习惯问题,我更喜欢 JavaScript WebSocket API 而不是 channel.
@lesismal 嗯,感谢他的贡献,提供吉祥物和完善文档
@flyqie 要把多余的去掉,工作量蛮大
@liquid207 是的,合并前需要大片删除函数内的注释
@panlatent 哈哈, 有点过于详尽了. 如果在快速迭代阶段, 我会大片删除函数内的注释, 不过现在代码仓库主干已经非常稳定了, 应该不会再有重大更新, 接受 PR 就当表彰粉丝的热情了.
@sleepm 我不理解你的推理逻辑
@jevonszmx 因为一小片代码的注释就否定所有工作, 以偏概全了
@weakish 即使有 AI 辅助, 也肯定人为校准过, 非常费心了
1  2  3  4  5  6  7  8  9  10 ... 45  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2968 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 11:16 · PVG 19:16 · LAX 03:16 · JFK 06:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.