dart
Коллекции
Поиск…
Создание нового списка
Списки могут быть созданы несколькими способами.
Рекомендуемый способ - использовать литерал List :
var vegetables = ['broccoli', 'cabbage'];
Может также использоваться конструктор List :
var fruits = new List();
Если вы предпочитаете более сильный ввод текста, вы также можете указать параметр типа одним из следующих способов:
var fruits = <String>['apples', 'oranges'];
var fruits = new List<String>();
Для создания небольшого расширяемого списка, либо пустого, либо содержащего некоторые известные начальные значения, предпочтительной является литеральная форма. Существуют специальные конструкторы для других видов списков:
var fixedLengthList1 = new List(8);
var fixedLengthList2 = new List.filled(8, "initial text");
var computedValues = new List.generate(8, (n) => "x" * n);
var fromIterable = new List<String>.from(computedValues.getRange(2, 5));
См. Также Руководство по стилю Эффективного Дарта о коллекциях .
Создание нового набора
Наборы могут быть созданы с помощью конструктора:
var ingredients = new Set();
ingredients.addAll(['gold', 'titanium', 'xenon']);
Создание новой карты
Карты могут быть созданы несколькими способами.
Используя конструктор, вы можете создать новую карту следующим образом:
var searchTerms = new Map();
Типы ключа и значения также могут быть определены с помощью дженериков:
var nobleGases = new Map<int, String>();
var nobleGases = <int, String>{};
В противном случае карты могут быть созданы с использованием символа карты:
var map = {
"key1": "value1",
"key2": "value2"
};
Сопоставьте каждый элемент в коллекции.
Все объекты коллекции содержат метод map который принимает Function как аргумент, который должен принимать один аргумент. Это возвращает Iterable поддерживаемый коллекцией. Когда Iterable итерируется, каждый шаг вызывает функцию с новым элементом коллекции, а результат вызова становится следующим элементом итерации.
Вы можете снова перевернуть Iterable в коллекцию с помощью методов Iterable.toSet() или Iterable.toList() или с помощью конструктора коллекции, который принимает итерируемый, например Queue.from или List.from .
Пример:
main() {
var cats = [
'Abyssinian',
'Scottish Fold',
'Domestic Shorthair'
];
print(cats); // [Abyssinian, Scottish Fold, Domestic Shorthair]
var catsInReverse =
cats.map((String cat) {
return new String.fromCharCodes(cat.codeUnits.reversed);
})
.toList(); // [nainissybA, dloF hsittocS, riahtrohS citsemoD]
print(catsInReverse);
}
См. Пример dartpad: https://dartpad.dartlang.org/a18367ff767f172b34ff03c7008a6fa1
Отфильтровать список
Дарт позволяет легко фильтровать список, используя where .
var fruits = ['apples', 'oranges', 'bananas'];
fruits.where((f) => f.startsWith('a')).toList(); //apples
Конечно, вы можете использовать некоторые операторы AND или OR в своем предложении where.