【发布时间】:2018-08-31 15:37:17
【问题描述】:
我正在尝试将字符串存储到结构内的切片字段中。这是为了收集数据并创建一个 Json 以通过 API 发布。
package main
type response1 struct {
Identifier string `json:"identifier"`
Family string `json:"family"`
Values struct {
Logo []struct {
Data string `json:"data"`
Scope string `json:"scope"`
} `json:"logo"`
}
}
func main() {
res2D := &response1{
Identifier: "1234567",
Family: "example",
}
res2D.Values.Logo[0].Data = "test"
res2B, _ := json.Marshal(res2D)
fmt.Println(string(res2B))
}
错误
我得到的错误:
panic: runtime error: index out of range
goroutine 1 [running]:
main.main()
/tmp/sandbox507443306/main.go:22 +0xe0
【问题讨论】:
-
您必须
make具有适当大小的切片才能分配给它的元素。参加围棋之旅。 -
您不必事先制作合适大小的切片。详情看我的回答。
-
go lang is a
static type language如果您使用的是数组,则意味着您需要使用make来修复array的大小