我想将一个类型为Big的结构体复制到类型为Small的结构体中,而不需要显式地创建一个与其具有相同字段的新Small结构体。
我已经搜索过其他类似的问题,比如这个和这个,但是所有不同结构体类型之间的转换都只针对那些具有相同字段的结构体。
以下是我尝试的示例:
我已经搜索过其他类似的问题,比如这个和这个,但是所有不同结构体类型之间的转换都只针对那些具有相同字段的结构体。
以下是我尝试的示例:
// Big has all the fields that Small has including some new ones.
type Big struct {
A int
B string
C float
D byte
}
type Small struct {
A int
B string
}
// This is the current solution which I hope to not use.
func ConvertFromBigToSmall(big Big) Small {
return Small{
A: big.A,
B: big.B,
}
}
我原本希望能够做到这样的事情,但它并不起作用:
big := Big{}
small := Small(big)
有没有一种方法可以在不使用Convert
函数的情况下转换Big
到Small
(甚至可能是相反),请问是否存在这样的方法?