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

我有一个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/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
有关。你能分享错误引用的结构吗?