doujian7132 2014-01-22 21:09
浏览 23
已采纳

Golang类型断言问题

I am trying to call this Gorp function http://godoc.org/github.com/coopernurse/gorp#DbMap.Get

I am doing this:

       // ClassType
    obj, err := c.Gorp.Get(entities.ClassType{}, class.ClassTypeCode)
    if err != nil {
        panic(err)
    }
    class.ClassType = obj.(*entities.ClassType)  <<<<<<<<< Error here

My Class looks like this:

package entities

import (
    "time"
)

type Class struct {
    Id                int
    ClassTypeCode     string
    VideoPath         string
    VideoSize         int
    Duration          float64
    CreatedAt         time.Time
    VisibleAt         time.Time
    NoLongerVisibleAt time.Time

    // Relationships
    ClassType  ClassType
    Instructor User
    Equipment  []Equipment
}

I keep getting this error message: interface conversion: interface is *entities.ClassType, not entities.ClassType

If I change my code to :

            // ClassType
    obj, err := c.Gorp.Get(entities.ClassType{}, class.ClassTypeCode)
    if err != nil {
        panic(err)
    }
    class.ClassType = obj.(*entities.ClassType)

I then get this message:

cannot use obj.(*entities.ClassType) (type *entities.ClassType) as type entities.ClassType in assignment

What am I doing wrong?

  • 写回答

1条回答 默认 最新

  • douren2831 2014-01-22 21:32
    关注
    class.ClassType = *obj.(*entities.ClassType)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)