Variables
Init
var name = 'Test';
Object name = 'Test';
var hex = 0xDEADBEEF;
var number = 1;
double d = 0.1;
num x = 1; // x — is double and int
x += 0.1;
String name = 'Test';
int? lineCount; // default: null
assert(lineCount == null);Late/Lazy
Dart подсветит, если посчитает, что вы объявили переменную (не nullable). Чтобы указать, что переменная будет проинициализирована позже, можно пометить ее ключевым словом late.
late String descr;
void main() {
descr = 'Test';
print(descr);
}late используют в двух случаях:
Если инициализация переменной слишком дорогостоящая операция
Мы инициализируем инстанс переменной, и этот инициализатор нуждается в доступе к
this(то есть, переменная должна быть проинициализирована после вызова конструктора и инициализации всего объекта).
По факту, инициализация произойдет только при обращении к переменной (lazy)
Const & Final
Если вы не собираетесь менять значение переменной, объявляем ее как final. const — это частный случай final-переменной, она получает свое значение на этапе компиляции.
Build-in types
int, double
String
bool
List
Set
Map
Runes (умные char'ы)
Symbol
null (класс Null)
Другие типы, имеющие специальные роли в Dart:
Object— суперкласс для всех других классов в Dart, за исключениемNullFutureиStream— используется в асинхронных функцияхIterable— используется в циклахforи в функциях-генераторахNever— индикатор того, что функция может никогда не вернуть своего результата (например, из-за исключения)dynamic— индикатор того, что мы хотим отключить статические проверки. Обычно, лучше использоватьObjectилиObject?.void— индикатор того, что значение никогда не используется. Часто используется для типа возвращаемого значения.
Converting
Strings
Lists
Spread operator (...)
if и for
Sets
Maps
Last updated