スライスを持つ構造体に関数を作りたいと思います。 私の問題は:私は私の構造体の内容を変更する必要があるため、ポインタの引数を使用したいと思います。ここでインターフェイススライスとポインタを移動
が私のコードです:
type CampaignIndexMemory []CampaignIndex
type CampaignIndex struct {
Objects []CampaignIndexObject
}
type CampaignIndexObject struct {
//They don't really care about us
}
func (c *CampaignIndexMemory) setCampaignIndex(object CampaignIndex) {
valueSet := false
for i,_ := range c {
if c[i].Objects[0].ID == object.Objects[0].ID {
c[i] = object
valueSet = false
break
}
}
if valueSet {
c = append(c, object)
}
}
私が間違って進むのので、多分私の方法(私は深くごめんなさい)Javaの世界から来たんです。
このコードでは、コンパイルに間違いがあり、「オブジェクト」属性の「未解決の参照」と表示されます。
私の質問は簡単です:何が起こっているのですか?
あなたのお時間をありがとうございます。
_ "スライスを持つ構造体に関数を作りたい" _受信者が 'struct'ではない、' CampaignIndexMemory'、つまり 'CampaignIndex'のスライスへのポインタです。 – Michael
私は自分の型をstructに変換しただけで、うまく動作します。ありがとう。 これは私の新しいコードです: タイプCampaignIndexMemory struct {indexes [] CampaignIndex} そして私はすべてのc [i]をc.indexes [i] –