
Молодой язык программирования DART уже завоевал прочные позиции, особенно когда речь идет о программировании мобильных приложений. С помощью Flutter компания Google создала комплект для разработки программного обеспечения (SDK), который использует DART, способствуя использованию и распространению этого языка программирования. Существенным преимуществом является то, что его можно использовать для программирования приложений для всех мобильных операционных систем, то есть Apple iOS, Google Android и Microsoft Windows Phone.
Этот учебник по DART введет вас в мир языка программирования Google — языка, который сравнительно легко освоить. В нашей статье «Что такое DART?» содержится более подробная информация о самом языке. Вы также можете узнать больше в нашей статье о наборе средств разработки программного обеспечения Flutter от Google.
Происхождение DART
Изначально DART возник для устранения уязвимостей JavaScript, которые, с точки зрения разработчика, уже не могли быть устранены в рамках этого устоявшегося языка программирования.
При этом DART стал способом упростить или обобщить определенные внутренние типы логики, не теряя при этом из виду возможностей. Приведем пример: JavaScript имеет:
getElementsById()
getElementsByTagName()
getElementsByName()
getElementsByClassName()
querySelector()
querySelectorAll()
document.links
document.images
document.forms
document.scripts
formElement.elements
selectElement.options
Что остается в DART:
elem.query('#foo');
elem.queryAll('.foo');
Начало работы с DART
Язык программирования состоит из мира «словаря», с помощью которого структурируются данные и разрабатываются процессы (алгоритмы). Для этого в языке используется определенное количество терминов: переменные, которые не должны использоваться в других целях. Некоторые примеры в DART: «var», «int», «if», «else» или «while». Более подробную информацию об архитектуре языков программирования вы можете найти в нашем руководстве по языкам программирования в Интернете. Комбинация переменных, операторов, условий, функций и многого другого создает поток программы, в конце которого выводится результат.
DART — это просто
Ниже мы привели несколько простых примеров для изучения программирования на DART, которые вы можете расширить или поэкспериментировать с ними. Каждая программная процедура начинается с вызова, например, функции main:
void main () {
print("Hello World!");
}
Перед функцией «main» стоит тип возврата «void», который ничего не возвращает. Круглые скобки «()» обозначают функцию, а в фигурных скобках «{…}» выполняется код DART. Здесь команда — вывести что-то на экран. За двумя косыми чертами «//» находится комментарий, который остается невидимым. Это также работает с «/* this is a multi-line comment …*/», что является известным примером из PHP. Это позволяет сделать структурированный комментарий к собственному коду для себя или для других разработчиков, что значительно облегчает командную работу над существующими проектами.
Как и в Java, C или PHP, все утверждения DART должны завершаться точкой с запятой.
Вы можете легко опробовать следующие примеры на практике с помощью бесплатной платформы с открытым исходным кодом DartPad. Одним из преимуществ этого блокнота является то, что он нумерует строки программы и при необходимости выводит сообщения об ошибках. Кроме того, некоторые примеры программирования доступны из выпадающего меню.
«Void main() {…}» больше не встречается в других примерах кода в этом тексте.
Определение и использование переменных
Фиксированные шкалы для программы определяются с помощью переменных. Мы начнем с чисел.
var mySize = 174;
Здесь определяется новая переменная: «mySize». Ей присвоено значение «174». Эта переменная остается со своим значением в потоке программы до тех пор, пока она не будет активно изменена операторами или функциями. Для вывода значения переменной используется команда «print».
var mySize = 174;
print(mySize);
int yourSize = 174;
print(yourSize);
double thisSize = 1.74;
print(thisSize);
dynamic oneSize = 'Onehundredandseventyfour' + ': ' + '174';
print(oneSize);
В DartPad с помощью команды «print» в консоль выводятся строки 3, 6, 9 и 12:

Переменные в DART принимают определенные типы. Это могут быть целые числа («int») или числа с плавающей точкой («double»). Переменная типа «dynamic» может иметь различные значения и выражения в потоке программы. В отличие от них, пустые строки, табуляции и абзацы не учитываются при выполнении программы. По этой причине значения справа в консоли находятся непосредственно друг под другом.
Попытка присвоить неправильное значение переменной определенного типа генерирует сообщение об ошибке с описанием ошибки в DartPad:
int mySize = 1.74; // integer is expected, but double comes
print(mySize);

Имена (идентификаторы) используемых переменных не могут содержать ключевых слов. Не допускаются цифры в начале, а также пробелы и специальные символы, за исключением знака подчеркивания «_» и знака доллара «$». Идентификаторы чувствительны к регистру и должны быть уникальными.
Символьные строки в учебнике DART
С помощью символьных строк, тип данных «String» (Внимание: с заглавной буквой S в начале), любой символ может быть обработан в программировании DART. В этом контексте вы также узнаете, как программировать многострочные, форматированные строки в DART.
String text1 = 'this is a single line string';
String text2 = '''this is a multiline
line string with a break''';
print(text1);
print(text2);

Текст отображается в виде строки путем заключения нужного содержимого в одинарные или обычные кавычки: ‘ или «. Однако, если текст начинается и заканчивается тройными кавычками (»’ или «»), DART также выводит текст в виде разрыва в месте его обертывания. Это дает возможность форматировать вывод.
Типографские кавычки (в основном в правильном английском варианте) можно легко расставить в тексте в Windows с помощью комбинаций клавиш [Alt] + 0147 (открывающие кавычки) и [Alt] + 0148 (закрывающие кавычки). Они также выводятся как таковые в строке с помощью DART. В macOS эти кавычки можно добавить с помощью [Alt] + [Shift] + [W] и [Alt] + [2].
Акробатика чисел с помощью DART
От определения переменных до вычислений с переменными — короткий путь. Числа и четные выражения можно складывать. Для вычисления результатов DART использует арифметические операторы. Например, одна из задач может заключаться в том, что в интернет-магазине был выбран товар, и покупатель хотел бы купить три таких товара. Поэтому в функции корзины цена за единицу товара должна быть умножена на «3», а в конце вычисления должна быть показана общая цена. Следующий код показывает, как используются различные методы объединения данных, вместе с комментариями в соответствующих строках:
String product = 'calendar';
String curr = 'EUR';
String isFor = 'for'; // 3 strings for later print use
double singlePrice = 7.96; // floating comma for single price
int amount = 3; // number of ordered calendars
var totalPrice = (amount*singlePrice); // calculation of the total price with multiplier *
var invTotal = '$totalPrice $curr'; /* Merging of two variables in a new one by adding a $ sign before the old variables.*/
var result = '$amount $products'; //also plus adding a letter “s” for plural
print (invTotal); // creating the screen output
print (isFor);
print (result);

Здесь есть строки, числа с плавающей точкой и целые числа, а также объединение элементов программирования в новые переменные. Следует отметить особенность при объединении двух существующих переменных в новую переменную для вывода на экран: В этом случае перед переменными, которые уже определены, ставится знак доллара «$» (строки 8 и 9 на иллюстрации DartPad).
Задание условий
При программировании условия играют важную роль. Здесь вы узнаете, как запрограммировать условие с помощью DART. Условие всегда приводит к решению, в смысле: Если (if) произойдет случай A, то на экране появится дисплей X; если произойдет случай B (elseif), то появится дисплей Y; если не произойдет ни то, ни другое (else), то будет выведен дисплей Z. В результате получается следующий код с командами DART, показанными в скобках:
var tOol = 'Glove';
if (tOol == 'Pliers' || tOol == 'Ruler')
{ print('That is a tool.');
} else if (tOol == 'brush')
{ print('That is a tool.');
} else { print('That is not a tool.');
}
}
В DartPad это выглядит следующим образом:

Расширьте собственные знания в учебнике DART и измените в DartPad слово «перчатка» на «плоскогубцы», «линейка» или «кисть», наблюдая за изменениями в запрограммированном выводе на консоль. Это можно расширить по мере необходимости и применить к различным случаям. Оператор «||» появился впервые. Эти двойные линии обозначают логический термин «или», который нельзя использовать в DART как слово «OR».
Вверх и вниз также возможны в DART
Чтобы запрограммировать следующий раздел, мы должны изучить так называемые инкременты и декременты в DART. Они управляют постепенным увеличением или уменьшением выходного значения. В примере число 50 изменяется с помощью операторов «++» и «-«.
var upAndDown = 50;
print (upAndDown);
print('----');
++upAndDown;
print (upAndDown);
print('----');
upAndDown++;
print (upAndDown);
print('----');
--upAndDown;
print (upAndDown);
print('----');
upAndDown--;
print (upAndDown);

Здесь также видно, что простую символьную строку можно вывести без предварительного определения, поместив ее между круглыми скобками с кавычками с помощью оператора «print» в коде программы. Это используется только для визуального структурирования результата. С этими знаниями вы теперь можете программировать циклы.
Хождение по кругу: циклы в DART
Циклы также являются важными программными процедурами, которые требуются снова и снова, например, для проведения сравнений с существующими размерами. Для этого используется следующая «формулировка»: У нас есть значение A; продолжайте изменять это значение, пока не будет достигнут размер (условие) B. В виде кода DART это выглядит следующим образом:
String myLabel = ' pieces';
var piece = 3;
while (piece < 12) {
var allThisStuff = '$piece $myLabel';
print(allThisStuff);
piece++;
}
Что с этим делает DartPad?

В этом примере условия также могут быть использованы повторно, если, например, слова различаются в формах единственного и множественного числа:
int amount = 1;
var itemSing = 'blouse';
var itemPlural = 'blouses';
if (amount == 1)
{ print(itemSing);
} else { print(itemPlural);
}
Чтобы научиться программировать с помощью DART, скопируйте этот пример кода в DartPad и измените целочисленную переменную «количество» так, чтобы артикул «блузка» выводился в форме единственного или множественного числа.
Операторы DART с первого взгляда
Теперь вы узнали некоторые операторы, которые можно использовать для программирования в DART. В следующей таблице представлен обзор наиболее важных операторов.
В таблице переменной «example» присвоено значение 35.
var example = 35;
Тип оператора | Имя | Символ | Пример | Выход | ||||
---|---|---|---|---|---|---|---|---|
Вычислить | Сложение | + | var пример + 2; | 37 | ||||
Вычитание | — | var пример — 2; | 33 | |||||
Умножение | * | var пример * 3; | 105 | |||||
Деление | / | var example / 7; | 5 | |||||
Целочисленное деление | ~/ | var example ~/7; | 11 | |||||
Увеличить на | += | var example += 6; | 41 | |||||
Уменьшить на | -= | var example -= 7; | 28 | |||||
Умножить на | *= | var example *= 2; | 70 | |||||
Разделить на | /= | var example /= 7; | 5 | |||||
Сравнить | Одинаковые | == | var example == 35; | Истинно | ||||
Не идентично | != | var example ! = 44; | True | |||||
Меньше чем | < | var example < 44; | True | |||||
Меньше или равно | <= | var example <= 33; | ||||||
Больше чем | > | 44 > var example; | True | |||||
Больше или равно | >= | var example>=23; | ||||||
Изменить | Восходящее | ++ | ++var example; | 36 | ||||
Восходящий | ++ | var example++; | 36 | |||||
Нисходящий | — | — var example; | 34 | |||||
Нисходящий | — | var example—; | 34 | |||||
Остаточное значение | % | %var example%3; | 2 | |||||
Логика | И | && | пример1 && пример2 | … и | ||||
ИЛИ | пример1 | пример2 | … или | |||||
Отрицание | ! | пример1 ! пример2 | … не | |||||
Условия | Если-То | ? … : | var y = example < 34 ? 15 : 10; | 10 | ||||
If-Then | ? … : | var y = example < 36 ? 15 : 10; | 15 | |||||
Проверьте нулевое значение | ? | var y = example ?? 9; | 35 | |||||
Проверка на нуль | ? | var z = 0 ?? пример; | 35 |
С этими базовыми знаниями вы теперь можете делать дальнейшие шаги в DART, и ваша цель — программирование собственного приложения — уже не так далека!