上級 › スライスやマップを含む構造体は == で比較できない › パターン1
スライスやマップを含む構造体は == で比較できない
スライスやマップ、関数値をフィールドに持つ構造体は比較不可能な型として扱われ、==演算子で比較しようとするとコンパイルエラーになります。
1 package main 2 3 import "fmt" 4 5 type Box struct { 6 Items []int 7 } 8 9 func main() { 10 a := Box{Items: []int{1}} 11 b := Box{Items: []int{1}} 12 fmt.Println(____________________________) ^ 13 }
./main.go:12:14: invalid operation: a == b (struct containing []int cannot be compared)
空欄を埋めて実行を通す
Itemsフィールドがスライスのため、Box型全体を==で比較することはできません。フィールドごとに比較するか、reflect.DeepEqualを使う必要があります。
次の問題