next()方法是顺序的,有没有办法同时迭代循环?
我有一个20万行的结果集,我正在按顺序循环,并对每一行进行逻辑运算,并希望将其拆分。
sql。从查询中返回的行不能同时使用(我相信)。
但你可以在野外完成大部分繁重的工作。
这里有一个例子(不工作,但关闭),在播放
package main
import "fmt"
import "sql"
type Row struct {
x string
y string
z string
}
func processor(ch chan Row) {
for row := range <-ch {
// be awesome
}
}
func main() {
ch := make(chan Row)
// two handler go routines (current processors)
go processor(ch)
go processor(ch)
rows := db.Query("select x,y,z from whatever")
for rows.Next() {
var row Row
if err := rows.Scan(&row.x, &row.y, &row.z); err != nil {
// do something with error
} else {
ch <- row
}
}
}