-1

コードに BattleFoundmap があり、次のような要素を追加しようとしました:(バトルは nil ではありません)

battleFoundMap[battle.ID] = battle.Answers

しかし、デバッグすると 1:27: expected '==', found '=' error and not put in it が返されます。それを解決する方法は?

ここにマップとカード構造体があります

var battleFoundMap map[uint][]models.Card

type Card struct {
    gorm.Model
    UserId             uint      `json:"userid"`
    Name               string    `json:"name"`
    Meaning            string    `json:"meaning"`
}
4

2 に答える 2

2

@ShivaKishoreの答えに追加すると、

のようにマップを宣言すると、var name map[KeyType]ValueType. このマップの値は でnil、長さは0です。

マップにはキー値がなく、追加するnilこともできません。読み取り操作では空のマップのように動作しますが、データを書き込む場合はランタイム パニックが発生します。

var m map[string]string

// reading
m["foo"] == "" // works.

// writing
m["foo"] = "bar" // will panic.

ただし、でマップを初期化するmakeと、読み取り操作と書き込み操作の両方で機能する空のマップが作成されます。

// as you can't declare a map globally using shorthands
var m map[string]string
m = make(map[string]string)

または、略記を使用して

m := make(map[string]string)
于 2020-07-24T13:20:43.740 に答える