メインコンテンツにスキップ

equal_keys_in_map

マップリテラル内の2つのキーは等しくないはずです。

説明

#

アナライザーは、定数ではないマップ内のキーが、同じマップ内の前のキーと同じ場合にこの診断を生成します。2つのキーが同じ場合、2番目の値は最初の値を上書きします。これにより、両方のペアを持つことが無意味になり、バグを示唆している可能性があります。

#

次のコードは、キーabが同じ値を持つため、この診断を生成します。

dart
const a = 1;
const b = 1;
var m = <int, String>{a: 'a', b: 'b'};

一般的な修正

#

両方のエントリをマップに含める必要がある場合は、いずれかのキーを変更してください。

dart
const a = 1;
const b = 2;
var m = <int, String>{a: 'a', b: 'b'};

いずれか一方のエントリのみが必要な場合は、不要な方を削除してください。

dart
const a = 1;
var m = <int, String>{a: 'a'};

リテラルマップはエントリの順序を保持することに注意してください。したがって、削除するエントリの選択は、イテレーターによってキーと値が返される順序に影響を与える可能性があります。