Быстрый старт Flutter-разработчика. Андрей Алеев
Читать онлайн книгу.объектов. Примеры объявления и инициализации списков:
List <int> list1 = new List ();
List <int> list2 = List ();
var list3 = [1, 2, 3];
Для инициализации в Dart 2.3 добавлен спред оператор – троеточие – с помощью него можно добавить в список множество значений:
var list = [1, 2, 3];
var list2 = [0, …list];
Sets
Сеты – это неупорядоченные наборы уникальных элементов. В Dart для того, чтобы создать сет, нужно использовать фигурные скобки для непустого набора и фигурные скобки в сочетании с угловыми и типом объектов для пустого:
var colors = {’red’, ’green’, ’blue’}; // сразу инициализируем сет
var colors = <String> {}; // объявляем пустой сет
Set <String> colors = {}; // тоже корректно
Maps
Мапы – это наборы данных в формате ключ-значение. Ключами, как и значениями, могут быть объекты любых типов. Каждый ключ является уникальным, значения могут быть разными, а могут дублироваться. Посмотрим на примере:
var ballGames = {
’baseball’: ’club’,
’basketball’: ’hands’,
’football’: ’foots’
};
Альтернативные способы инициализации
var ballGames = Map ();
ballGames [’baseball’] = ’club’;
…
var ballGames = Map ();
ballGames [2] = ’hands’;
Runes
Dart поддерживает руны – спецсимволы юникод. Используйте, если хотите добавить смайлики. Попробуйте запустить в dartpad
Runes input = new Runes (»\u {1f60e}»);
print (new String.fromCharCodes (input));
final и const
В языке также присутствуют ключевые слова final и const.
Если переменную не планируется изменять, то следует задать ей модификатор final перед типом или словом var. Такая переменная может быть проинициализирована единожды. Переменные const неявно считаются final. Такие переменные используются для задания констант на этапе компиляции.
Функции
В Dart даже функции являются объектами. Это значит, что функции можно назначать переменным и передавать в качестве аргументов в другие функции. Тип возвращаемого значения указывается перед именем функции. Делать это необязательно, хотя и рекомендуется:
int doubleIt (int value) {
return value * 2;
}
doubleIt (value) {// корректно
return value * 2;
}
Поскольку эта функция содержит всего одно выражение, ее можно укоротить до одной строчки:
int doubleIt (value) => value * 2;
Оператор => -это сокращение фигурных скобок и слова return.
Опциональные параметры
При объявлении функции мы можем в ее сигнатуре указать значения по умолчанию. Например, нам понадобится вызывать какую-то функцию много раз с одним и тем же параметром, но при этом необходимо сохранить гибкость. В таком случае, при вызове с функции с параметром по умолчанию, его (этот параметр) можно не указывать.
В Dart существует два типа опциональных параметров: позиционные и именованные. Рассмотрим их подробнее.
Примечание: Опциональный параметр не может быть одновременно и позиционным и именованным
Именованные – такие параметры при вызове функции можно указывать опционально с именем и последующим двоеточием и оборачиванием в фигурные скобки. Пример:
updateWidget