微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以访问父结构字段吗?

如何解决我可以访问父结构字段吗?

是否可以访问父结构字段以便我可以在扫描功能中使用它?我想在图像字符串中有 A UUID。所以它的 http://blah.com/images/a/04756596-7cf1-4ee0-bc6e-38677f2057e8/test.jpg

a := models.A{}                                                                                                                                                                                
rows.StructScan(&a);
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
}

如果有更好的方法解决这个问题,我会全力以赴,任何有关它的文档都将不胜感激。

解决方法

我从一条已被删除的评论中解决了这个问题。

将图像更改为结构并添加了 ID 字段。更新了 sql 语句以返回 A.UUID 作为其自身和 image.id

有点技巧,但 sqlx 不喜欢填充具有相同 db 标记的两个不同结构字段

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。