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