Dart
- Дата создания:
- 2011
- Создан под влиянием:
- Парадигма:
- Типизация:
- Принятые расширения файлов:
- .dart
- Реализации и версии (свернуть все | развернуть все):
Dart — язык программирования для веб-разработки с открытым исходным кодом, созданный Google. Цель создания языка — заменить JavaScript в роли универсального языка веб-разработки.
В настоящее время существует три способа запустить программу на Dart:
- скомпилировать в JavaScript при помощи dart2js и запустить результат в любом браузере.
- выполнить код напрямую в Dartium — версии Chromium со встроенной поддержкой Dart.
- использовать Dart VM — отдельную виртуальную машину, входящую в Dart SDK и позволяющую запускать программы в консольном режиме.
Элементы синтаксиса:
Комментарий до конца строки | // |
---|---|
Комментарии, которые не могут быть вложенными | /* ... */ |
Регистрозависимость | да |
Регулярное выражение идентификатора переменной | [_a-zA-Z][_a-zA-Z0-9]* |
Присваивание значения переменной | varname = value |
Объявление переменной | type variable |
Объявление переменной с присваиванием значения | type variable = value |
Группировка выражений | ( ... ) |
Блок | { ... } |
Равенство | == |
Неравенство | != |
Сравнение | < > <= >= |
Определение функции | returntype f(type1 p1, type2 p2, ...) |
Вызов функции | f(a, b, ...) |
Вызов функции без параметров | f() |
Последовательность | , |
Если - то | if (condition) ... |
Если - то - иначе | if (condition) ... else ... |
Бесконечный цикл | while (true) ... |
Цикл с предусловием | while (condition) ... |
Цикл с постусловием | do ...while (!condition) |
Цикл for - next для диапазона целых чисел с инкрементом на 1 | for (int i = 1; i <= 10; i++) ... |
Цикл for - next для диапазона целых чисел с декрементом на 1 | for (int i = 10; i >= 1; i--) ... |
Логотип Dart
Ссылки:
Примеры:
Hello, World!:
Пример для версий Dart 1.1.1=> expr
— сокращение для { return expr; }
main() => print("Hello, World!");
Факториал:
Пример для версий Dart 1.1.1Используется рекурсивное определение факториала. Тип данных int
позволяет хранить целые числа произвольной величины.
int factorial(int n) => n == 0 ? 1 : n * factorial(n - 1);
main() {
for (int i = 0; i <= 16; ++i) {
print('$i! = ${factorial(i)}');
}
}
Факториал:
Пример для версий Dart 1.1.1Используется итеративное вычисление факториала.
main() {
int fact = 1;
for (int i = 0; i <= 16; ++i, fact *= i) {
print('$i! = $fact');
}
}
Числа Фибоначчи:
Пример для версий Dart 1.1.1Используется рекурсивное определение чисел Фибоначчи.
int fibonacci(int n) => n <= 2 ? 1 : fibonacci(n - 2) + fibonacci (n - 1);
main() {
String output = "";
for (int i = 1; i <= 16; ++i) {
output += fibonacci(i).toString() + ", ";
}
print(output + "...");
}
Квадратное уравнение:
Пример для версий Dart 1.1.1import 'dart:io';
import 'dart:math' show sqrt;
int readInt() {
String input = stdin.readLineSync();
return int.parse(input);
}
main() {
int A, B, C;
try {
A = readInt();
B = readInt();
C = readInt();
}
on FormatException {
print("Coefficient is not a number.");
return;
}
if (A == 0) {
print("Not a quadratic equation.");
return;
}
int D = B * B - 4 * A * C;
double p1 = - B / 2.0 / A;
double p2 = sqrt(D.abs()) / 2.0 / A;
if (D == 0) {
print("x = $p1");
} else {
if (D > 0) {
print("x1 = ${p1 + p2}");
print("x2 = ${p1 - p2}");
} else {
print("x1 = ($p1, $p2)");
print("x2 = ($p1, ${-p2})");
}
}
}
CamelCase:
Пример для версий Dart 1.1.1splitMapJoin
разбивает строку на части, соответствующие регулярному выражению, и части между ними, преобразует все фрагменты с использованием двух функций (в данном случае изменяет регистр соответствующих частей и заменяет несоответствующие на пустые строки) и конкатенирует результаты в новую строку.
import 'dart:io';
main() {
String text = stdin.readLineSync().toLowerCase();
String capitalize(Match m) => m[0].substring(0, 1).toUpperCase() + m[0].substring(1);
String skip(String s) => "";
print(text.splitMapJoin(new RegExp(r'[a-z]+'), onMatch: capitalize, onNonMatch: skip));
}
Комментарии
]]>blog comments powered by Disqus
]]>