Go 从SQL查询结果动态生成结构字段

Go 从SQL查询结果动态生成结构字段,go,struct,Go,Struct,我想检索该行的所有字段,然后将它们呈现为html。我知道怎么做,下面是一个包含3个字段的行的代码: type View struct { Id int Name_and_requisits string Reg_Date string } func getViewById(id int) (*View, error){ var vie View row := db.QueryRow("select id, name_and_requisi

我想检索该行的所有字段,然后将它们呈现为html。我知道怎么做,下面是一个包含3个字段的行的代码:

type View struct {
    Id         int
    Name_and_requisits string
    Reg_Date  string
}
func getViewById(id int) (*View, error){
    var vie View
    row := db.QueryRow("select id, name_and_requisits, reg_date from book where id = ?;", id)
    err := row.Scan(&vie.Id, &vie.Name_and_requisites, &vie.Reg_Date)
    if err != nil {
        return nil, err
    }

    return &vie, nil
}
但在我的表中,一行包含大约20列,我需要所有列的名称,但我不想创建一个nasted硬编码结构。我有一个想法,就是从列的名称动态生成结构字段,然后使用row.Scan。有什么想法吗?也许地图更适合这种情况

谢谢

动态生成结构字段

但是请不要这样做

动态生成结构字段


但是请不要这样做。

@StephaneMartin谢谢,你的回答帮助了我@StephaneMartin谢谢,你的回答帮助了我!“不要这样做”。哈,别开玩笑了。人们总是来自Python,想要疯狂的、怪异的灵活性,却没有意识到Go是一种静态类型的语言,这是一件好事+1@RayfenWindspear你说得对,Python是我的背景:)我同意,在围棋中灵活性的降低是一件好事。这就像Joomla疯狂的灵活性,疯狂的挂起与自作主张的CMS“不要这样做”。哈,别开玩笑了。人们总是来自Python,想要疯狂的、怪异的灵活性,却没有意识到Go是一种静态类型的语言,这是一件好事+1@RayfenWindspear你说得对,Python是我的背景:)我同意,在围棋中灵活性的降低是一件好事。这就像Joomla疯狂的灵活性,疯狂的悬挂与自我疯狂的CMS