Golang: Pattern: Iterate with Next()

21st December 2020 at 3:53pm

Go 里面当遍历一个流式集合时,经常使用 Next() Next____() 这类 API。

比如 database/sql 中的 Rows 类,当遍历 SQL 查询结果时,使用 rows.Next() 切换到下一条结果集;再使用 rows.Scan() 读取数据:

rows, err := db.Query("select id, name from users where id = ?", 1)
for rows.Next() {
    err := rows.Scan(&id, &name)
}

Rows.NextResultSet() 也是类似的 API 设计。