gpt4 book ai didi

go - 用golang查询的结构替换变量

转载 作者:IT王子 更新时间:2023-10-29 02:32:22 26 4
gpt4 key购买 nike

我有这段有效的代码片段:

db, err := sql.Open("mysql", "pwd@tcp(ip:port)/db")
if err != nil {
panic(err.Error())
}
rows, err := db.Query("select username from users")
if err != nil {
panic(err.Error())
}
var (
username string
)
for rows.Next() {
err = rows.Scan(
&name,
)
if err != nil {
panic(err)
}
fmt.Println(username)
}

但是,……有没有可能替代

var (
username string
)

和 错误 = 行.扫描( &姓名, )

有一个结构?

我问这个是因为每次我想添加新字段时都需要

  • 在查询中添加字段
  • 在“var” block 中创建新变量
  • 添加要扫描的变量

我可以只在一个地方定义结构和更新字段吗?或者,...是否有一些最佳实践来构建查询并获取它们?

最佳答案

你可以这样做:

type user struct {
Name string
Pass string
Email string
Age int
}

func main() {
db, err := sql.Open("mysql", "pwd@tcp(ip:port)/db")
if err != nil {
panic(err.Error())
}
rows, err := db.Query("select user, pass, email, age from users")
if err != nil {
panic(err.Error())
}
var (
users []user
)
for rows.Next() {
u := user{}
err = rows.Scan(
&u.Name, &u.Pass, &u.Email, &u.Age,
)
if err != nil {
panic(err)
}

users = append(users, u)
}
fmt.Println(users)
}

关于go - 用golang查询的结构替换变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45453890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com