Go 我可以访问父结构字段吗?
是否可以访问父结构字段,以便在扫描函数中使用它?我希望图像字符串中有Go 我可以访问父结构字段吗?,go,sqlx,Go,Sqlx,是否可以访问父结构字段,以便在扫描函数中使用它?我希望图像字符串中有AUUID。所以它的http://blah.com/images/a/04756596-7cf1-4ee0-bc6e-38677f2057e8/test.jpg a := models.A{}
A
UUID。所以它的http://blah.com/images/a/04756596-7cf1-4ee0-bc6e-38677f2057e8/test.jpg
a := models.A{}
rows.StructScan(&a);
如果有更好的方法来解决这个问题,我洗耳恭听,并感谢您提供相关文档。我能够从一条已被删除的评论中解决这个问题 将图像更改为结构并添加了ID字段。更新sql语句以将
A.UUID
作为其自身和image.id
有点老套,但sqlx不喜欢填充两个不同的结构字段,它们具有相同的
db
tag您所说的“父结构”是什么意思?我想这是一个错误的术语。我的意思是图像类型在A结构中,我想通过图像扫描功能访问A结构UUID字段井,scan
接受一个空接口。因此,如果没有类型断言,就无法访问值的任何特定字段。
type A struct {
UUID uuid.UUID `db:"uuid" json:"uuid"`
Name string `db:"name" json:"name"`
Image Image `db:"image" json:"image"`
}
type Image string
func (i *Image) Scan(value interface{}) error {
if value == nil {
*i = "https://picsum.photos/id/1029/400/150"
return nil
}
b := fmt.Sprintf("%s/images/a/**{A.UUID HERE}**/%s",
config.ServerConfig.BaseUrl, value.(string))
*i = Image(b)
return nil
}