2017-02-05 6 views
0

私はトラブル私は「犬」に「犬」を追加したいGO最初の引数は、スライス

type Dog struct { 
    color string 
} 

type Dogs []Dog 

append関数を呼び出すを持っていなければなりません。

私はこの

Dogs = append(Dogs, Dog) 

をやってみましたしかし、私は申し訳ありませんが、私は行くために新たなんだ

First argument to append must be slice; have *Dogs 

このエラーが発生します。

ありがとうございます!

編集: また、この犬に「白」という色が含まれているかどうかを確認したい場合は、私はこれをどのように呼びますか?

if Dog.color.contains("white") { 
    //then append this Dog into Dogs 
} 
+1

'Dogs'は変数ではなく型です。 – tkausl

答えて

1

犬は、おそらくに意味タイプではない変数、次のとおりです。

var Dogs []Dog 
+0

与えられたものを使用しなければならないと言いますが、どうすればそれを変数にしてAppendで呼び出すことができますか? – pkmangg

+0

'type Dogs [] Dog'から変数を作成することができます。例えば、' var myDogs Dogs' – Elad

1

友人は、それはタイプではありません言うように、ここでの例では役に立つことができます:

// Create empty slice of struct pointers. 
Dogs := []*Dog{} 
// Create struct and append it to the slice. 
dog := new(Dog) 
dog.color = "black" 
Dogs = append(Dogs, dog) 
関連する問題