October 2015
Beginner to intermediate
400 pages
14h 44m
English
The DeepEqual function from the reflect package reports
whether two values are “deeply” equal.
DeepEqual compares basic values as if by the built-in ==
operator; for composite values, it traverses them recursively,
comparing corresponding elements.
Because it works for any pair of values, even ones that are not
comparable with ==, it finds widespread use in tests.
The following test uses DeepEqual to compare two []string values:
func TestSplit(t *testing.T) {
got := strings.Split("a:b:c", ":")
want := []string{"a", "b", "c"};
if !reflect.DeepEqual(got, want) { /* ... */ }
}
Although DeepEqual is convenient, its distinctions can seem arbitrary. For example, it doesn’t consider a ...