When comparing two array values, their elements will be compared one by one. Once two corresponding elements are found unequal, the whole comparison stops and a false result is resulted. The whole comparison might also stop for a panic produced when comparing two interfaces.
For example, the first comparison in the following code results false, but the second one causes a panic.
package main
type T [2]interface{}
func main() {
var a = T{1, func(){}}
var b = T{2, func(){}}
println(a == b) // false
var c = T{2, func(){}}
var d = T{2, func(){}}
println(c == d) // panics
}