1 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
這也適用于你。這是來自FAQ的鏈接。
package main
import (
"fmt"
)
type Caller struct {
call func()
}
func printer(val int) {
fmt.Printf("the value is %v\n", val)
}
func main() {
values := []int{1, 2, 3}
var callers []Caller
for _, val := range values {
var call func()
func(v int) {
call = func() {
printer(v)
}
}(val)
callers = append(callers, Caller{call})
}
for _, caller := range callers {
caller.call()
}
}
另一種方法是將 val 的當(dāng)前值綁定到每個(gè)閉包啟動(dòng)時(shí),您可以將其存儲(chǔ)在一個(gè)新變量中,然后使用它(您為解決它所做的方法)。
- 1 回答
- 0 關(guān)注
- 123 瀏覽
添加回答
舉報(bào)