2 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
這個(gè)問(wèn)題有點(diǎn)難以理解,但嘗試從遵循這種模式的東西開始(為簡(jiǎn)潔起見,省略了錯(cuò)誤處理):
rows, _ := db.Query(string, args...)
var Rows []Row
for rows.Next() {
var r Row
rows.Scan(&r.Name, &r.Completed, &r.Due, &r.Rcount)
Rows = append(Rows, r)
}
如果您能澄清問(wèn)題,也許我們可以提供更好的答案

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
我認(rèn)為您正在尋找內(nèi)置函數(shù)append
請(qǐng)注意,它通常與賦值結(jié)合使用,因?yàn)樗赡鼙仨毞峙漕~外的內(nèi)存。零值切片可以正常工作,無(wú)需調(diào)用 make。
steps := []string{"write program", "???", "profit"}
var rows []Row
for _, tasks := range steps {
rows = append(rows, Row{Name: tasks})
}
如果您想遍歷 sqlite3 查詢結(jié)果,您的循環(huán)看起來(lái)會(huì)有所不同,但x = append(x, ...)模式將保持不變
如果您事先知道切片的大小,使用make 進(jìn)行顯式初始化會(huì)更有效。
var rows = make([]Row, len(steps))
for i, tasks := range steps {
rows[i] = Row{Name: tasks}
}
- 2 回答
- 0 關(guān)注
- 176 瀏覽
添加回答
舉報(bào)