0
我有包含像這樣切片字段的結構,現在我想收集來自SQL查詢的列到這些片掃描數據庫列與片結構
type StructOfSlices struct {
Column1 []string
Column2 []string
}
有沒有更簡單/更可擴展/有效的方式來做到這一點比以下?
在這裏,我首先要創建結構的 「單一」 的版本...
type StructSingle struct {
Column1 string
Column2 string
}
var s StructOfSlices
rows, _ := db.Query("SELECT column1, column2 FROM table")
...然後掃描每個單獨的單一結構...
for rows.Next() {
var single StructSingle
db.Scan(&single.Column1, &single.Column2)
s.Column1 = append(s.Column1, single.Column1)
s.Column2 = append(s.Column2, single.Column2)
}
...和然後附加到片結構
另一種解決方案是使用自定義類型('[] string')來實現'sql.Scanner'接口,其中'Scan'函數會附加結果。這種情況可能有點過分。 – yazgazan
這將工作!這看起來像是更多的工作/複雜性,再加上它在閱讀實際發生的代碼時不那麼清晰。但是,如果真實情況比問題中的例子更復雜,則可能需要這樣做。 – Adrian