2016-11-15 21 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之間混合。 –