douya2006
2016-06-09 11:31
浏览 173
已采纳

Golang-结构之间的转换

I have two structs

type A struct {
    a int
    b string
}

type B struct {
    A
    c string
    // more fields
}

I'd like to convert variable of type A to type B (A has defined only basic fields that are crucial for some parts, B on the other hand contains 'full' data).

Is it possible in Go, or do I have to copy fields manually (or create a method A.GetB() or something like this and use this to convert A to B)?

图片转代码服务由CSDN问答提供 功能建议

我有两个结构

  type A结构{
a  int 
b字符串
} 
 
B型结构{
 A 
c字符串
 //更多字段
} 
   
 
 

我想要 将类型A的变量转换为类型B(A仅定义了对某些部分至关重要的基本字段,另一方面B包含了“完整”数据)。

开始,还是我必须手动复制字段(或创建方法A.GetB()或类似的方法,然后使用它将A转换为B)?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • drl6054 2016-06-09 12:08
    已采纳

    By converting do you mean this:

    func main() {
        // create structA of type A
        structA := A{a: 42, b: "foo"}
    
        // convert to type B
        structB := B{A: structA}
    }
    
    打赏 评论
  • doufang2228 2016-06-09 11:43

    The types A and B have different underlying types so they cannot be converted into each other. No way.

    So either copy manually or provide converter functions or methods which do this copying.

    打赏 评论

相关推荐 更多相似问题