Dart オブジェクトのアドレスを出力するトリックはありますか? Dart は列挙型をサポートしていますか?で説明されているように、標準の列挙型クラスがあるという問題があります。.
class Access {
static const IA = const Access._(0);
static const RO = const Access._(1);
static const RW = const Access._(2);
final int value;
const Access._(this.value);
...
}
変数accessは Access 型で、値は 1 ですが、access==Access.ROは false を返しています。
var access = _.access;
print('''
access => ($access, ${access.runtimeType}, ${access.value})
static => (${Access.RO}, ${Access.RO.runtimeType}, ${Access.RO.value})
equal ? => ${(access == Access.RO)}
''');
版画
access => (RO, Access, 1)
static => (RO, Access, 1)
equal ? => false
値を比較するoperator==(Access other)を指定すると、期待値が返されます。したがって、これはおそらく異なるライブラリからクラスに来ることと関係があると考えました(おそらく関連するものを分離します) 。アクセスとAccess.ROのアドレスを出力できれば、それらが異なるかどうかを確認できます。もちろん、それらが異なる場合は、その理由も知る必要があります。