Получить первый элемент списка, если он существует в дротике - PullRequest
0 голосов
/ 18 октября 2019

Мне было интересно, есть ли способ получить доступ к первому элементу списка в dart, если элемент вообще существует, и в противном случае вернуть ноль.

Сначала я подумал, что это сработает:

final firstElement = myList?.first;

Это работает, если myList имеет значение null или myList.length> 0, но выдает ошибку, если myList является пустым списком.

Я думаю, я мог бы сделать что-то вроде этого:

final firstElement = (myList?.length ?? 0) > 0 ? myList.first : null;

Но мне было интересно, есть ли более простой способ сделать то, что я пытаюсь сделать там.

1 Ответ

1 голос
/ 18 октября 2019

Как вы, возможно, уже догадались, вам нужно реализовать такую ​​функциональность самостоятельно, и поскольку this и / или this по-прежнему открыты, минималистичный вариант выполнения этого (т.е. через функции расширения).

Так что мы должны сделать более длинную версию:

E firstOrNull<E>(List<E> list) {
  return list == null || list.isEmpty ? null : list.first;
}

Редактировать: Как уже упоминалось @Mattia, в версии 2.6 будет поддерживаться статические функции расширения (в настоящее времябета).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...