Урок 2. Язык программирования Dart
В этой главе:
– Переменные, типы и область видимости
– Функции
– Конструкторы
– Наследование
– Примеси (mixin)
– Callable классы
– Дженерики
– Асинхронные функции
– Исключения
– Использование библиотек
– Компиляция
Приложения под Flutter пишутся на языке Dart. Даже сам фреймворк написан на нем. Dart – это высокоуровневый объектно-ориентированный язык программирования общего назначения с открытым исходным кодом. Был разработан в Google. Испытал влияние C, Javascript, C#, Java. В нем также как и в Java и C# присутствует garbage collector. Язык поддерживает интерфейсы, примеси (англ. Mixin), абстрактные классы, дженерики и статическую типизацию.
Dart был представлен публике в 2011 году авторами Ларсом Барком (Lars Bark) и Каспером Лундом (Kasper Lund). Релиз версии 1.0 состоялся в 2013 году, а версии 2.0 в 2018
Примечание: Здесь и далее в этом курсе мы рассматриваем Dart версии 2
Все приложения на Dart, как и на C и в Java, имеют точку входа в функции main ()
В случае, если необходимо запустить программу на Dart из командной строки, то можно использовать параметризованную main:
Переменные, типы и область видимости
Dart типобезопасный язык. В нем используется как статическая типизация на этапе компиляции, так и динамическая проверка во времени исполнения (runtime) программы. Несмотря на наличие статической типизации, указывать тип переменной необязательно. Например, все объявления и инициализации ниже корректные:
Примечание: В Dart 2 ключевое слово new стало необязательным
По умолчанию, все переменные имеют публичную область видимости. Таких привычных для Java-программистов ключевых слов, как private, protected и public в Dart нет.
Однако если добавить нижнее подчеркивание [_] к имени переменной, такая переменная будет иметь область видимости библиотеки, в которой она находится.
Все объекты в Dart наследуются от базового типа Object. Это аналог Object в Java. В нем также есть метод hasCode () и аналог equals, который заменяет оператор сравнения ==
Так же в классе Object присутствует метод toString ()
Встроенные типы включают:
– Числовые (num и его наследники int и double)
– Строковые (strings)
– Булевы (Booleans)
– Списки, или массивы (list)
– Сеты (set)
– Мапы (map)
– Руны (for expressing Unicode characters in a string)