From 8884fabfd739c232c97158b75a6ad0fe72cf9721 Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Tue, 30 Oct 2012 14:42:47 -0700 Subject: [PATCH] reflect: improve documentation for DeepEqual regarding maps Keys use ==; values use deep equality. Also remove the word 'member'. Fixes #4258. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6812055 --- src/pkg/reflect/deepequal.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pkg/reflect/deepequal.go b/src/pkg/reflect/deepequal.go index cd364dd9fd..db047963eb 100644 --- a/src/pkg/reflect/deepequal.go +++ b/src/pkg/reflect/deepequal.go @@ -122,9 +122,11 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) (b bool panic("Not reached") } -// DeepEqual tests for deep equality. It uses normal == equality where possible -// but will scan members of arrays, slices, maps, and fields of structs. It correctly -// handles recursive types. Functions are equal only if they are both nil. +// DeepEqual tests for deep equality. It uses normal == equality where +// possible but will scan elements of arrays, slices, maps, and fields of +// structs. In maps, keys are compared with == but elements use deep +// equality. DeepEqual correctly handles recursive types. Functions are equal +// only if they are both nil. // An empty slice is not equal to a nil slice. func DeepEqual(a1, a2 interface{}) bool { if a1 == nil || a2 == nil {