如何用for循环填充todos-Object?
type Row struct {
Name string
Completed bool
Due time.Time
Rcount string
}
type Rows []Row
todos := Rows{
Row{Name: "Write presentation"},
Row{Name: "Host meetup"},
}
这个问题有点难以理解,但请尝试从以下模式开始(为简洁起见,省略错误处理):
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)
}
如果您能澄清问题,也许我们可以提供更好的答案
我认为您正在寻找内置函数附加
请注意,它通常与分配结合使用,因为它可能必须分配额外的内存。零值切片工作得很好,无需调用make。
steps := []string{"write program", "???", "profit"}
var rows []Row
for _, tasks := range steps {
rows = append(rows, Row{Name: tasks})
}
如果要遍历 sqlite3 查询结果,则循环看起来会有所不同,但x = append(x, ...)
模式将保持不变
如果你事先知道你的切片会有多大,那么使用 make 进行显式初始化会更有效。
var rows = make([]Row, len(steps))
for i, tasks := range steps {
rows[i] = Row{Name: tasks}
}