目前,我正在使用一组结构,这些结构定义了文档的多个版本。大多数字段在这些不同版本之间共享,实际差异非常微妙。我想要做的是重构解析这个文档的代码。为此,如果我可以概括一些属性,那将非常好,我不需要确切知道我正在工作的类型,就知道该类型将具有特定字段。
我曾考虑过使用反射,但如果我能避免它,我会的。
假设我们有:
type v1 struct{
a int
}
和
type v2 struct{
a int
b string
}
我想做的是
func main(){
var v1 v1
var v2 v2
foo(v1)
foo(v2)
}
func foo (root interface{}){
root.a = x
}
可能吗?还是有其他方法?
编辑:1 - 这不是“从界面获取所有字段”的副本,因为我的问题不是要弄清楚我正在处理什么类型,而是以相同的方式操作/处理不同的类型。2 - 这可能是“如何编写一个函数来处理golang中的两种类型的输入数据”的副本,但提供的答案无法解决我的问题。