2013-10-20 41 views
12

この構造体にスライス型を追加する必要があります。Go、Golang:構造体内の配列型、型複合リテラルがありません

type Example struct { 
    text []string 
} 

func main() { 
    var arr = []Example { 
     {{"a", "b", "c"}}, 
    } 
    fmt.Println(arr)  
} 

その後、私は

prog.go:11: missing type in composite literal 
    [process exited with non-zero status] 

を取得していますので、複合リテラル

var arr = []Example { 
     {Example{"a", "b", "c"}}, 

しかし、まだこのエラーを取得を指定:

cannot use "a" (type string) as type []string in field value 

http://play.golang.org/p/XKv1uhgUId

これを修正するにはどうすればよいですか?どのように配列(スライス)型を含む構造体を構築するのですか?ここで

答えて

34

Example構造体のあなたの適切なスライスである:

[]Example{ 
    Example{ 
    []string{"a", "b", "c"}, 
    }, 
} 

は私がそれを説明してみましょう。 Exampleのスライスを作りたいとします。だからここには - []Example{}です。次に、Example-Example{}が入力されている必要があります。 Exampleは、[]string-[]string{"a", "b", "c"}からなる。それは正しい構文の問題です。

希望に役立ちます。

+0

http://play.golang.org/p/jFBqfgoR6h –

+0

これはいかがですか?それはもっと価値があり、別の理由で動かない。 Can not把握できません –

+2

フィールドにリテラル表記法の名前を付けない場合は、すべてのフィールドに値を指定する必要があります。 http://golang.org/ref/spec#Composite_literals。あなたのものに基づいた実例:http://play.golang.org/p/13OSJHd5xe – mna

関連する問題