gpt4 book ai didi

mysql - Golang 映射多结果

转载 作者:数据小太阳 更新时间:2023-10-29 03:24:39 24 4
gpt4 key购买 nike

var newR[] struct {
id string
eventid string
excel_id string
userid string
hallid string
}

i := 0
for rows.Next() {
var id, eventid, excel_id, userid, hallid string
err = rows.Scan(&id, &eventid, &excel_id, &userid, &hallid)

// Here is what I want to do
newR[i].id = id
newR[i].eventid = eventid
newR[i].excel_id = excel_id
newR[i].userid = userid
newR[i].hallid = hallid
i++
}

最终我收到一条错误消息“运行时错误:索引超出范围”在/myapp/app/controllers/app.go(大约第 122 行)

newR[i].id = id

任何建议或提示都会有所帮助。谢谢。

最佳答案

您不需要为每个字段创建局部变量,只需创建一个结构并使用它来读取数据并使用 slice 来累积结果:

// struct definition must be out of functions body
type newR struct {
id string
eventid string
excel_id string
userid string
hallid string
}

var newRs []newR
for rows.Next() {
var current newR
err = rows.Scan(&current.id, &current.eventid, &current.excel_id, &current.userid, &current.hallid)
newRs = append(newRs, r)
}

而且最好在 rows.Next()rows.Scan(...) 之后检查错误。

关于mysql - Golang 映射多结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45316699/

24 4 0
文章推荐: algorithm - 在 Go 中将 map 转换为树
文章推荐: jquery - iPad/iPhone 悬停问题导致用户双击链接
文章推荐: jquery - 使用 jquery 触发更改事件