2016-11-15 17 views
0

我是一名编程初学者,现在我正在学习lang,这个问题可能很简单。我有一个声明如下:在数组中存储需要帮助struct

var list []struct { 
    Name string 
    Value string 
} 

问题是我不知道如何初始化里面的一个变量。感谢任何帮助。

我已经试过

list[0].Name="12" 
    list[0].Value="123" 
    // this throws an index out of range exception.. 
+1

您是否需要先为**索引分配**条目(当然还有其他条目)? – FDavidov

+0

据我所知,我们需要使用make关键字进行分配。但是对于这个我不知道如何分配或者我错了???请帮助我。谢谢 –

+0

我不知道你正在使用的语言,但你可以尝试寻找'new'命令,这在很多语言中都意味着为一个新对象(在你的情况下)分配一个空间到一个数组_中。 – FDavidov

回答

0

下面的方法可能是你正在寻找的人。

package main 
import ("fmt") 
type YourType struct { 
    Name, Value string 
} 
var ListOfTypes=[]YourType{ 
    {Name:"NameOne",Value:"ValueOne"}, 
    {Name:"NameTwo",Value:"ValueTwo"}, 
} 
func main() { 
    fmt.Println(ListOfTypes[0]) // This will print {NameOne ValueOne} 
    ListOfTypes[0].Name="NewValue" 
    fmt.Println(ListOfTypes[0]) //{NewValue ValueOne} 
} 
3

首先你要声明一个类型结构的主要范围之外:

type myStruct struct { 
    Name string 
    Value string 
} 

那你说去,“我想这个结构中X的切片”:

list := make([]myStruct, 5) 

然后你只需填写您的结构用右手食指:

list[0].Name = "12" 
list[0].Value = "123" 
+1

这在技术上是一个切片,而不是一个数组。 – heemayl

+0

是的,这是真的,我的坏。我在C和Go之间混合。 –