go 新特性 range over func 没怎么看懂。。。。写库的时候用吗?

1次阅读

共计 375 个字符,预计需要花费 1 分钟才能阅读完成。

go1.23 新的正式特性 range over func 看了下没怎么看懂。。。

for range 返回一个函数,函数里面还是 for range 或者就 for 循环:

func Backward[E any](s []E) func(func(int, E) bool) {return func(yield func(int, E) bool) {for i := len(s) - 1; i >= 0; i-- {if !yield(i, s[i]) {return}
        }
        return
    }
}

func main() {sl := []string{"hello", "world", "golang"}
    for i, s := range Backward(sl) {fmt.Printf("%d : %sn", i, s)
    }
}

Backward 这个函数这形式看起来还真有点复杂,不好理解。。。。可能例子不是相应场景下需要的,看半天没理解。
感觉一般都用不上。

正文完
 0