在 Golang 中填充一个对象



如何用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}
}

最新更新