gpt4 book ai didi

GoLang - 填充结构数组

转载 作者:数据小太阳 更新时间:2023-10-29 03:37:09 24 4
gpt4 key购买 nike

我有以下2个结构

     type AAAA struct{
Aa [2]byte
Ab [2]byte
Ac [3]byte
}
type BBBB struct{
Ba [4]byte
Bb [2]byte
Bc [3]byte
Bd [2]byte // No Of Struct AAA Items
BBStr []AAAA
}

所以Struct BBB在Struct AAA中重复

然后我有一个字符串作为输入,其中包含作为输入的结构的值

input := "aaaabbccc02ddeefffddeeffff"(这里02是Struct AAAA在Struct BBBB中重复的次数)

我需要读取输入字符串并填充结构 BBBB,包括结构 AAA 的数组

我写了下面的函数来实现这个。但我收到“错误错误 - binary.Read:无效类型 *main.BBBB

需要帮助确定此错误的原因?还有办法以不同的方式做到这一点吗?

    func main() {
input := "aaaabbccc02ddeefffddeefff"
var k BBBB
var j AAAA
k.BBStr = append(k.BBStr,j)
k.BBStr = append(k.BBStr,j)
xyz := []byte(input)
err := binary.Read(bytes.NewReader(xyz), binary.LittleEndian, &k)
if err != nil {
fmt.Println("Bad error - ",err)
}
fmt.Println("Structure Definition - ",k)
}

最佳答案

文档位于 https://golang.org/pkg/encoding/binary/#Read说:

Data must be a pointer to a fixed-size value or a slice of fixed-size values.

这意味着您读取的类型的大小必须在编译时已知。您的 struct BBBB 包含一段 []AAAA,这意味着它的长度仅在运行时已知。如果您将其设为固定大小的数组,例如[16]AAAA,它会起作用。

关于GoLang - 填充结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46941841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com