Когда вы будете изучать язык Dart, помните эти факты и понятия:
- Все, что вы можете поместить в переменную, является объектом, а каждый объект является экземпляром класса. Четные числа, функции и
null
являются объектами. Все объекты наследуются от класса Object. - Хотя Dart строго типизирован, аннотации типов являются необязательными, потому что Dart может выводить типы. В приведенном выше коде число выводится как тип
int
. Если вы хотите явно сказать, что тип не ожидается, используйте специальный тип dynamic. - Dart поддерживает универсальные типы, такие как
List<int>
(список целых чисел) илиList<dynamic>
(список объектов любого типа). - Dart поддерживает функции верхнего уровня (такие как
main()
), а также функции, связанные с классом или объектом (статические свойства и методы экземпляра, соответственно). Вы также можете создавать функции внутри функций (вложенные или локальные функции). - Точно так же Dart поддерживает переменные верхнего уровня, а также переменные, привязанные к классу или объекту (статические переменные и переменные экземпляра). Переменные экземпляра иногда называют полями или свойствами.
- В отличие от Java, в Dart нет ключевых слов
public
,protected
иprivate
. Если идентификатор начинается с подчеркивания (_
), он является приватным для своей библиотеки. Для получения дополнительной информации см. Библиотеки и видимость. - Идентификаторы могут начинаться с буквы или подчеркивания (_), за которыми следует любая комбинация этих символов плюс цифры.
- Dart имеет как выражения (которые имеют значения времени выполнения), так и операторы (которые не имеют). Например, условный оператор
condition ? expr1 : expr2
имеет значениеexpr1
илиexpr2
. Сравните это с оператором if-else, который не имеет значения. Инструкция часто содержит одно или несколько выражений, но выражение не может напрямую содержать инструкцию. - Инструменты Dart могут сообщать о двух видах проблем: предупреждения и ошибки. Предупреждения являются лишь признаками того, что ваш код может не работать, но они не препятствуют выполнению вашей программы. Ошибки могут быть как во время компиляции, так и во время выполнения. Ошибка во время компиляции вообще не позволяет выполнить код; ошибка во время выполнения приводит к возникновению исключения во время выполнения кода.