问题描述

我的结构

type Result struct {
   name   string
   Objects []struct {
       id int
   }
}

为此初始化值

func main() {
   var r Result;
   r.name  = "Vanaraj";
   r.Objects[0].id = 10;
   fmt.Println(r)
}

我收到此错误.紧急:运行时错误:索引超出范围"

I got this error. "panic: runtime error: index out of range"

该如何解决?

推荐答案

首先,我要说的是,为您的结构定义类型是更习惯的做法,而不管该结构多么简单.例如:

Firstly, I'd say it's more idiomatic to define a type for your struct, regardless of how simple the struct is. For example:

type MyStruct struct {
    MyField int
}
 Result 
Result
type Result struct {
    name   string
    Objects []MyStruct
}
 Object 
Object
 make 
make
r.Objects = make([]MyStruct, 0)
 MyStruct 
MyStruct
ms := MyStruct{
    MyField: 10,
}
 r.Objects 
appendr.Objects
r.Objects = append(r.Objects, ms)
 make 
make

这篇关于如何在Golang中初始化嵌套结构数组的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!