回答

收藏

Golang数据库管理器api概念,类型断言错误

技术问答 技术问答 176 人阅读 | 0 人回复 | 2023-09-12

通过创建API数据库管理器获取数据API基本概念。我在用。GORM来获取strcut实例数据。因此,代表的结构是300-400。( a( j7 |9 M% }! W8 g
type Users struct {  ID int64  Name string}type Categories struct {  ID int64  Category string}下一步,我通过表名(通过API返回结构的正确例子。
( _& d( z' s- Z' o- \& F3 rfunc GetModel(model string) interface{}{  switch model {  case "users":    return Users{}  case "categories"    return Categories{} }  return false}之后是一个操作结构,其中唯一一个字段是DB。例如,我想用一些方法GORM db.Last(&users)函数的GetLast()。, I' t# T7 ^+ t
func (o Operations) GetLast(model string) interface{}{  modelStruct := GetModel(model)  .  .  .  return o.DB.Last(&modelStruct)}有几点,所以我不知道。目前的解决方案不能正常工作,因为在这种情况下,它是一个界面{},我需要在这个问题中添加)类型断言。类型断言如下:: ~* S2 ?# o+ `: G3 p7 q9 `$ W
func (o Operations) GetLast(model string) interface{}{  modelStruct := GetModel(model)  .  test := modelStruct.(Users)  .  return o.DB.Last(&test)}解决方案有效,但在这种情况下,我失去了模块化。我试着用它reflect.TypeOf(modelStruct),但也不能正常工作,因为reflect.TypeOf的结果是reflect.Type,with不是golang类型。" w/ L! p  `5 K/ T2 g
                                                                / ^* M( e6 k% g- }; k
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则