Ответ
В Dart var — это ключевое слово для объявления переменной с выводом типа. Компилятор автоматически определяет тип переменной на основе значения, присвоенного при инициализации, и затем фиксирует его.
Как это работает:
var name = 'Алиса'; // Компилятор выводит тип `String`
var count = 42; // Компилятор выводит тип `int`
var list = []; // Компилятор выводит тип `List<dynamic>`
var typedList = <String>[]; // Компилятор выводит тип `List<String>`
Важные особенности:
- Тип фиксируется один раз. После объявления тип изменить нельзя.
var id = 100; id = 200; // OK, значение того же типа (int) id = 'двести'; // ОШИБКА компиляции: тип `int` не может быть `String` - Требует инициализации при объявлении. Тип не может быть выведен из
null.var value; // ОШИБКА: Нельзя вывести тип. Нужно использовать `var value = null;` (тип `dynamic`) или `dynamic value;`.
Когда использовать var:
- Для локальных переменных, когда тип значения очевиден из контекста (например,
var controller = TextEditingController();). - Для сокращения многословных generic-типов (например,
var complexMap = <String, List<Future<MyData>>>{};).
Чем отличается от dynamic и Object?
var: Статический вывод типа. Безопасно, проверяется на этапе компиляции.dynamic: Отключает статическую проверку типов. Тип может меняться, проверка откладывается на время выполнения.Object: Переменная имеет статический типObject. Для доступа к методам конкретного типа требуется явное приведение (as).
Видео-ответы
▶
▶
▶
▶
▶
▶
▶