collection_methods_unrelated_type
関連のない型の引数を使用した様々なコレクションメソッドの呼び出し。
このルールはDart 2.19から利用可能です。
詳細
#使用しないでください 関連のない型の引数で特定のコレクションメソッドを呼び出さないでください。
これを行うと、コレクションの要素に対して`==`が呼び出され、ほとんどの場合`false`が返ります。
コレクションメソッドに渡される引数は、コレクションの型と以下の様に関連付けられている必要があります。
- `Iterable<E>.contains`への引数は`E`と関連付けられている必要があります。
- `List<E>.remove`への引数は`E`と関連付けられている必要があります。
- `Map<K, V>.containsKey`への引数は`K`と関連付けられている必要があります。
- `Map<K, V>.containsValue`への引数は`V`と関連付けられている必要があります。
- `Map<K, V>.remove`への引数は`K`と関連付けられている必要があります。
- `Map<K, V>.[]`への引数は`K`と関連付けられている必要があります。
- `Queue<E>.remove`への引数は`E`と関連付けられている必要があります。
- `Set<E>.lookup`への引数は`E`と関連付けられている必要があります。
- `Set<E>.remove`への引数は`E`と関連付けられている必要があります。
悪い例
dart
void someFunction() {
var list = <int>[];
if (list.contains('1')) print('someFunction'); // LINT
}
悪い例
dart
void someFunction() {
var set = <int>{};
set.remove('1'); // LINT
}
良い例
dart
void someFunction() {
var list = <int>[];
if (list.contains(1)) print('someFunction'); // OK
}
良い例
dart
void someFunction() {
var set = <int>{};
set.remove(1); // OK
}
使用方法
#`collection_methods_unrelated_type`ルールを有効にするには、`analysis_options.yaml`ファイルのlinter > rulesセクションに`collection_methods_unrelated_type`を追加します。`analysis_options.yaml`
analysis_options.yaml
yaml
linter:
rules:
- collection_methods_unrelated_type
特に明記されていない限り、このサイトのドキュメントはDart 3.5.3を反映しています。最終更新日:2024年7月3日。 ソースコードを表示 または 問題を報告する。