/** * Equality over structs and arrays in Go. * * @author gtowell * @created Aug 2021 **/ package main import "fmt" type AA struct { ab int ac int } func main() { aa1 := AA{1,2} aa2 := AA{1,2} fmt.Printf("aa1==aa2 %v\n", aa1==aa2) fmt.Printf("paa1 %p\n", &aa1) fmt.Printf("paa1 %p\n", &aa2) aa3 := aa2 fmt.Printf("paa3 %p\n", &aa3) fmt.Printf("aa2==aa3 %v\n", aa2==aa3) // Create two arrays // equality check looks are the equality of members ar1 := [1]AA{aa1} ar2 := [1]AA{aa2} fmt.Printf("ar1==ar2 %v\n", ar1==ar2) //Create two slices a := []AA{aa1} b := []AA{aa2} fmt.Printf("%v %v\n", a, b) // fmt.Printf("a==b %v\n", a==b) // == comparison not defined for slice }