description

# operator == abstract method

bool operator ==(

1. Object other

)
override

Checks whether `other` has the same shape and equal fields to this record.

A record is only equal to another record with the same shape, and then only when the value of every field is equal, occording to its `==`, to the corresponding field value of `other`.

There is no guaranteed order in which field value equality is checked, and it's unspecified whether further fields are checked after finding corresponding fields which are not equal. It's not even guaranteed that the order is consistent within a single program execution.

As usual, be very careful around objects which break the equality contract, like double.nan which is not equal to itself. For example

    var pair = ("a", double.nan);
    if (pair != pair) print("Oops");

will print the "Oops", because `pair == pair` is defined to be equal to `"a" == "a" & double.nan == double.nan`, which is false.

## Implementation

    bool operator ==(Object other);