go编译错误:结构文字中的字段未知
我有一个go包,它具有以下结构:go编译错误:结构文字中的字段未知,go,Go,我有一个go包,它具有以下结构: package transforms type MqttConfig struct { Qos byte } type KeyCertPair struct { KeyFile string } 在my main.go中,我导入包并使用这两个包: import ( sdkTransforms "github.com/edgexfoundry/app-functions-sdk-go/pk
package transforms
type MqttConfig struct {
Qos byte
}
type KeyCertPair struct {
KeyFile string
}
在my main.go中,我导入包并使用这两个包:
import ( sdkTransforms "github.com/edgexfoundry/app-functions-sdk-go/pkg/transforms")
type AWSMQTTConfig struct {
MQTTConfig *sdkTransforms.MqttConfig
KeyCertPair *sdkTransforms.KeyCertPair
}
config := AWSMQTTConfig{}
//FIRST
pair := &sdkTransforms.KeyCertPair{
KeyFile: mqttKey,
}
//SECOND
mqttcfg := &sdkTransforms.MqttConfig{
Qos: 2,
}
但只有第二种用法会给我这个编译错误:
unknown field 'Qos' in struct literal of type transforms.MqttConfig
我不明白怎么了 您可能指向的sdkTransforms包版本没有MqttConfig的该字段。您可以执行
go get
以获取最新版本并重试。是否可能您指向的sdkTransforms包版本没有MqttConfig的该字段?@bserdar实际上MqttConfig最近已更改,并添加了一个新字段,但Qos是一个旧字段,应该已经存在。我可以检查一下我选择的版本吗?makefile看起来正常。检查go.mod,看看它是哪个版本。@bserdar我已经克隆了repo,它包含正确的结构,但在go缓存中我有旧版本。我不知道如何清洁环境,但你的回答是对的。如果您回答,我将在您的AWSMQTTConfig
结构中显示,MqttConfig
和KeyCertPair
未嵌入。但您在问题中共享的错误与另一个结构transforms.MqttConfig
有关。你能分享错误引用的结构吗?