【发布时间】:2022-11-19 00:47:07
【问题描述】:
我正在尝试编写将 []int 映射到 []func()int 的函数,并在内部函数的闭包中捕获 int 值,以便在将来的调用中重用。 不幸的是,我目前没有成功,也不明白我这边出了什么问题。 欣赏来自更熟练的 Golang 人的任何想法。
这是代码 sn-p:
els := []int{1, 2, 3, 4}
fSlice := func(e []int) []func() int {
res := make([]func() int, len(e))
for i, v := range e {
res[i] = func() int {
res := v
return res
}
}
return res
}(els)
fmt.Println("---")
for _, v := range fSlice {
fmt.Println(v())
}
---
Output: 4 for each iteration of the fSlice
【问题讨论】: