Как называется метод "some" в Dart's List? Проверка метода, прошел ли хотя бы один элемент тест - PullRequest
0 голосов
/ 03 февраля 2020

В массивах JavaScript существует метод some:

Метод some() проверяет, прошел ли хотя бы один элемент в массиве выполненный тест по предоставленной функции. Он возвращает логическое значение.

Я думаю, что аналогичный метод должен быть и в списках дротиков, но я просто не могу найти его где-нибудь в inte rnet или в List документы .

Я привык к тому, что у Дарта разные имена для некоторых методов, поэтому я всегда трачу около 5 минут, пока не вспомню, что JavaScript find называется where и так далее. Однако я не могу найти эквивалент some.

1 Ответ

0 голосов
/ 03 февраля 2020

Ха! Проблема заключалась в том, что эквивалент JavaScript some - это метод класса Iterable , а не List. Класс List реализует Iterable, поэтому я мог бы найти его раньше, но я думаю, что я потерян во всех этих описаниях методов.

Дартовский эквивалент some метода называется: any:

Iterable<E> bool any(bool test(E element))

Чеки удовлетворяет ли какой-либо элемент этой итерации test.

Проверяет каждый элемент в порядке итерации и возвращает истину, если какой-либо из них делает тестовый возврат истинным, в противном случае возвращает ложь.

Пример использование:

// The list in which we want to check if there is an item that passes a certain test.
List<String> haystack = [
  // It contains some elements...
];
// Just to be explicit in this example, you don't really need it
typedef TestFunc = bool Function(String);
// The test. Just some function that takes an element and returns boolean.
TestFunc isNeedle = (String v) => v.toLowerCase().contains('needle');

bool gotNeedle = haystack.any(isNeedle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...