共计 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
这个函数这形式看起来还真有点复杂,不好理解。。。。可能例子不是相应场景下需要的,看半天没理解。
感觉一般都用不上。
正文完