1. Введение в Dart: Переменные, типы данных и константы
Введение в Dart: Переменные, типы данных и константы
Добро пожаловать в курс по основам синтаксиса языка программирования Dart! Это первая статья, с которой начнется ваше погружение в мир современной кроссплатформенной разработки. Dart — это язык, разработанный компанией Google, который стал фундаментом для популярного фреймворка Flutter. Однако Dart прекрасен и сам по себе: он лаконичен, строго типизирован и производителен.
В этой статье мы разберем «кирпичики», из которых строится любая программа: как хранить данные, какие виды данных существуют и как заставить программу запоминать информацию навсегда.
Точка входа: Где начинается программа?
Прежде чем говорить о переменных, нужно понять, где вообще пишется код. В Dart, как и во многих C-подобных языках (C++, Java, C#), выполнение программы всегда начинается с функции main.
Если вы напишете код вне этой функции, он не запустится сам по себе. Минимальная программа на Dart выглядит так:
Разберем этот код:
* void — означает, что функция ничего не возвращает (она просто выполняет действие).
* main — зарезервированное имя главной функции.
* () — круглые скобки для аргументов (сейчас они пусты).
* {} — фигурные скобки ограничивают тело функции (блок кода).
* print(...) — команда вывода текста в консоль.
* ; — точка с запятой обязательна в конце каждой инструкции. Это важное отличие от языков вроде Python или Swift, где она часто опускается.
!Поток выполнения программы Dart, начинающийся с функции main.
Переменные: Хранение данных
Представьте, что оперативная память компьютера — это огромный склад с ячейками. Чтобы не запоминать адрес каждой ячейки (например, 0x7fff5694), мы даем им понятные имена. Эти именованные ячейки и есть переменные.
В Dart объявить переменную можно двумя основными способами: с явным указанием типа и с помощью вывода типа.
1. Вывод типа (Type Inference)
Ключевое слово var говорит компилятору: «Посмотри на значение, которое я присваиваю, и сам догадайся, какой это тип данных».
Как только вы присвоили переменной var значение определенного типа, этот тип закрепляется за ней навсегда. Вы не сможете потом записать в age строку.
2. Явное указание типа
Вы можете (и часто это рекомендуется для ясности) явно написать тип переменной вместо var.
Это делает код более читаемым для других программистов: сразу видно, что именно должно храниться в переменной.
!Различие между автоматическим определением типа и строгой типизацией.
Основные типы данных
Dart — строго типизированный язык. Это значит, что каждая переменная имеет свой тип, и операции между несовместимыми типами запрещены (например, нельзя вычесть слово из числа). Рассмотрим основные типы, встроенные в язык.
Числа (Numbers)
В Dart есть два основных типа для чисел, которые наследуются от общего типа num:
int (Integer) — целые числа. Их размер зависит от платформы, но обычно это 64-битные числа.-10, 0, 42, 100000.
double — числа с плавающей точкой (дробные). Они соответствуют 64-битному стандарту IEEE 754.3.14, -0.001, 10.0.Строки (Strings)
Строки в Dart — это последовательность символов в кодировке UTF-16. Для создания строк можно использовать как одинарные ', так и двойные " кавычки.
Интерполяция строк — это мощная возможность встраивать значения переменных прямо в текст. Для этого используется символ name набрал {score + 50}');
dart
bool isRaining = false;
bool isDartFun = true;
dart
dynamic box = 'Кот';
print(box); // Выведет: Кот
box = 42; // Теперь здесь число print(box); // Выведет: 42 dart final DateTime now = DateTime.now(); // Значение будет получено при запуске // now = DateTime.now(); // Ошибка! final переменную нельзя переназначить. dart const double pi = 3.14159; const int secondsInMinute = 60; const int secondsInHour = 60 * 60; // Вычисляется до запуска dart int a; // print(a); // Ошибка компиляции! Переменная не инициализирована.
int b = null; // Ошибка! Тип int не может быть null.
dart
int? c; // Теперь c может хранить число или null
c = null; // Это допустимо
dart
int? x; // x равно null
int y = 0; // y равно 0, мы обязаны дать значение
`
Заключение
Мы рассмотрели фундамент языка Dart. Теперь вы знаете:
. позволяет не писать тип, если он очевиден, но Dart все равно строго следит за ним., double, String, bool. удобнее, чем сложение через +. — для значений, известных до запуска, final — для значений, вычисляемых при запуске.В следующей статье мы научимся управлять потоком выполнения программы: использовать условные операторы if/else` и циклы, чтобы заставить наш код принимать решения.