3 回答
TA贡献1830条经验 获得超3个赞
例如,
i := 0
for result := range results {
fmt.Println(result)
newresults[i] = result
i++
}
TA贡献1820条经验 获得超2个赞
频道没有索引。如果要跟踪计数,请创建自己的计数变量并在 for 循环内递增。
另一种方法是创建一个带有索引和任务名称的结构。
package main
import (
"fmt"
)
type Task struct {
Index int
Task string
}
func main() {
tasks := []string{"foo", "bar", "baz"}
results := process(tasks)
myresults := make([]*Task, 3)
for result := range results { // index?
fmt.Println(result) // I would like to add result to an array of results?
// results[index] = result???
myresults[result.Index] = result
}
}
func process(tasks []string) <-chan *Task {
ch := make(chan *Task)
go func() {
for index, task := range tasks {
t := &Task{Index: index, Task: task}
ch <- t
// ch <- fmt.Sprintf("processed task %d: %s", index, task)
}
close(ch)
}()
return ch
}
- 3 回答
- 0 关注
- 158 浏览
添加回答
举报