25 lines
1.1 KiB
Text
25 lines
1.1 KiB
Text
|
go-cmp is a package for equality of Go values.
|
||
|
|
||
|
This package is intended to be a more powerful and safer alternative
|
||
|
to reflect.DeepEqual for comparing whether two values are semantically
|
||
|
equal.
|
||
|
|
||
|
The primary features of cmp are:
|
||
|
|
||
|
- When the default behavior of equality does not suit the needs of the
|
||
|
test, custom equality functions can override the equality
|
||
|
operation. For example, an equality function may report floats as
|
||
|
equal so long as they are within some tolerance of each other.
|
||
|
|
||
|
- Types that have an Equal method may use that method to determine
|
||
|
equality. This allows package authors to determine the equality
|
||
|
operation for the types that they define.
|
||
|
|
||
|
- If no custom equality functions are used and no Equal method is
|
||
|
defined, equality is determined by recursively comparing the
|
||
|
primitive kinds on both values, much like reflect.DeepEqual. Unlike
|
||
|
reflect.DeepEqual, unexported fields are not compared by default;
|
||
|
they result in panics unless suppressed by using an Ignore option
|
||
|
(see cmpopts.IgnoreUnexported) or explicitly compared using the
|
||
|
AllowUnexported option.
|