登录
首页 >  Golang >  Go问答

给定字符串数组动态初始化结构体

来源:stackoverflow

时间:2024-04-17 09:09:35 412浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《给定字符串数组动态初始化结构体》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

我正在使用gorm来查询和管理mysql。以下代码片段中名为 syncdb 的函数会迁移 user.go 目录下的 user.go 文件中找到的最新用户架构。

package db

    import (
       "my-server/db/schema"
       "github.com/jinzhu/gorm"
    )

    func syncdb(db *gorm.db) {

        db.automigrate(&schema.user{})

    }

我在 schema 目录下有多个文件。我尝试读取目录 schema 下的所有文件名,并将文件名作为数组,如下所示:

filenames := []string{
   "user.go",
   "password.go",
   "profile.go",
}

有没有办法使用filenames数组并动态调用:

db.AutoMigrate(&schema.User{})

例如,&schema.user{} 在下一次调用中被替换为 &schema.password{}。我怎样才能使这个东西动态化?


解决方案


无法发送文件。 我建议创建 struct 的 slice 并将其传递到 automigrate 中,如下所述:

values := []interface{}{&schema.User{}, &profile.Profile{}, &password.Password{}}

if err := DB.AutoMigrate(values...).Error; err != nil {
    panic(fmt.Sprintf("No error should happen when create table, but got %+v", err))
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《给定字符串数组动态初始化结构体》文章吧,也可关注golang学习网公众号了解相关技术文章。

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