我必须修改供应商文件中的结构。假设这是结构体在供应商文件中的方式
type sampleStruct struct {
sampleStringvar1 string
sampleStringvar2 string
}
Run Code Online (Sandbox Code Playgroud)
我需要像这样再添加一个字段
type sampleStruct struct {
sampleStringvar1 string
sampleStringvar2 string
sampleBoolVar bool
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?像这样修改供应商变量是一种好习惯吗?如果不是,最好的方法是什么?
如果您不想 fork 供应商库并将其替换为您自己的库,那么最佳实践是在您的项目中使用包装器。
包装对象将是结构:
sampleStruct实例sampleBoolVar布尔值那是:
type MySampleStruct {
ss *sampleStruct
sampleBoolVar bool
}
Run Code Online (Sandbox Code Playgroud)
这样,您可以sampleBoolVar在供应商库继续sampleStruct像往常一样使用时受益。
你如何能够引用一个未导出的结构,就像
sampleStruct它自己的包之外的那样?
这是正确的,并且上述建议不是关于公开私有变量,而是关于根据您从sampleStruct.
根据库的行为,这可能是不可能的。