Быстрый старт Flutter-разработчика - страница 7

Шрифт
Интервал


Урок 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)