登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-03-17 10:39:27 396浏览 收藏

在扫描函数中访问父结构体字段,以便在图像字符串中包含 UUID。可以通过将图像更改为结构并添加 ID 字段,并更新 SQL 语句以返回 A.UUID 作为其自身和 image.id 来解决此问题。虽然有点黑客,但 sqlx 不喜欢填充两个具有相同 db 标记的不同结构字段。

问题内容

是否可以访问父结构字段,以便我可以在扫描函数中使用它?我想在图像字符串中包含 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 标记的不同结构字段

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《我可以访问父结构体字段吗?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>