在Golang中填充一个对象

时间:2016-06-09 10:51:16

标签: go

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

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找内置函数append

请注意,它通常与赋值结合使用,因为它可能必须分配额外的内存。零值切片工作正常,无需调用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}
}

答案 1 :(得分:0)

这个问题有点难以理解,但请尝试按照此模式开始(为简洁省略了错误处理):

Range("M2").Formula = "=LOOKUP(2,1/('PSC Audit Report 3.0'!D2:AT2>0)/('PSC Audit Report 3.0'!D2:AT2<>F2)/('PSC Audit Report 3.0'!D2:AT2<>H2)/('PSC Audit Report 3.0'!D2:AT2<>J2)/('PSC Audit Report 3.0'!D2:AT2<>L2),'PSC Audit Report 3.0'!$D$1:$AT$1)"
Range("N2").Formula = "=LOOKUP(2,1/('PSC Audit Report 3.0'!D2:AT2>0)/('PSC Audit Report 3.0'!D2:AT2<>F2)/('PSC Audit Report 3.0'!D2:AT2<>H2)/('PSC Audit Report 3.0'!D2:AT2<>J2)/('PSC Audit Report 3.0'!D2:AT2<>L2),'PSC Audit Report 3.0'!D2:AT2)"

如果你能澄清这个问题,或许我们可以提供更好的答案