猿问

从 Go 中的另一个嵌套结构变量访问结构的变量

给出了我写的 2 个结构。


type DNSPacket struct {

    header      DNSHeader.DNSHeader

    questions   []DNSQuestion.DNSQuestion

    answers     []DNSRecord.DNSRecord

    authorities []DNSRecord.DNSRecord

    resources   []DNSRecord.DNSRecord

}

type DNSHeader struct {

    id uint16 //16bits


    recursion_desired    bool  // 1 bit

    truncated_message    bool  // 1 bit

    authoritative_answer bool  // 1 bit

    opcode               uint8 // 4 bits

    response             bool  // 1 bit


    rescode             ResultCode // 4 bits

    checking_disabled   bool       // 1 bit

    authed_data         bool       // 1 bit

    z                   bool       // 1 bit

    recursion_available bool       // 1 bit


    questions             uint16 // 16 bits

    answers               uint16 // 16 bits

    authoritative_entries uint16 // 16 bits

    resource_entries      uint16 // 16 bits

} // total 96 bits

现在,当我调用results.header.questionswhere results is a type DNSPacket variable 时,我得到一个[go] result.header.questions undefined (cannot refer to unexported field or method questions)错误。


我究竟做错了什么?有解决方法吗?


拉莫斯之舞
浏览 103回答 1
1回答

慕运维8079593

这里有一些问题:您的两个结构的字段都不会导出到包含它们的包之外,因为它们以小写字母开头。如果要访问包外的字段,它们必须以大写字母开头。以小写字母命名您的包,例如dnsheader, not DNSHeader。
随时随地看视频慕课网APP

相关分类

Go
我要回答