Comments 8
TypeScript is designed and developed by Microsoft, whereas Dart is taken care of by Google, later approved as a standard by ECMA. TypeScript is ideal for the development of large applications, whereas Dart is ideal for single-page applications like Gmail. TypeScript has optional static typing with support for inheritance and generics, whereas Dart is a single-threaded programming language that has great asynchronous language support.
В Dart нет специального синтаксиса для объявления интерфейсов. Любой класс может действовать как интерфейс, и другой класс может его реализовать с
implements
:
Строго говоря это не совсем так.
Язык поддерживает ООП с классами и множественным наследованием
Множественного наследования здесь нет, это не c++
List: упорядоченная коллекция объектов одного типа.
Не обязательно одного типа
void printUserInfo({String name, int age}) { print('Name: $name, Age: $age');}void main() { // вызов printUserInfo(name: 'ivan', age: 30);}
Этот код даже не заведётся, поскольку параметры в функции должны быть помечены как обязательные. Тоже самое и в printUserInfoOptional
Функции высшего порядка принимают другие функции в качестве аргументов или возвращают их
???, не понимаю, на чём сделан акцент? Что функции это объекты на самом деле?
В Dart нет специального синтаксиса для объявления интерфейсов
Есть уже как год, появился в Dart 3, это модификатор interface
if(number % 2 == 0) {...}
Можно я просто побрюзжу и скажу, что уже пора использовать isEven
или isOdd
для этой цели
В Dart с включённым null safety переменные по умолчанию не могут быть null:
Передача данных между экранами обычно осуществляется через конструкторы и Navigator API:
SecondScreen({Key key, @required this.data})
Эта мысль преследовала меня сквозь весь текст. Теперь явно понятно, что весь материал представляет из себя простыню личных заметок, когда ещё использовался dart ~2 версии...
Напомню, что в рамках онлайн‑курсов OTUS вы можете изучить самые популярные ЯП, а также зарегистрироваться на ряд бесплатных мероприятий.
Поэтому спасибо, но нет.
В Dart >=3 много нового.Сделайте такую же статью но для Dart 3
Если уж писать очередную статью про Dart, то стоит писать про самые свежие версии языка и его фичи. А сейчас бегло и оооочень коротко пробежались по основным (и то не всем) конструкциям языка.
Так, в Dart 3.0 появился синтаксис для объявления интерфейсов и sealed классов. Можно почитать оф. документацию или обзор от ребят из Surf
Еще, начиная с 3 версии сильно апнули возможности switch-case и убрали назойливое ключевое слово break из этой конструкции.
Проект без NullSafety сейчас вообще сложно представить. Наверное это может быть только в каком-то "древнем" легаси.
Ни слова про миксины, расширения типов, расширения классов ?
Упоминание Flutter в таком виде кажется абсолютно неуместным. Лучше бы рассказали про Records (хотя бы), а про Flutter лучше отдельную и полную статью написали. Сейчас получается какая-то антиреклама фреймворка.
Многое из статьи уже неактуально для Dart 3. Появилось довольно много модификаторов классов для ООП, можно делать switch-case по типу детей родительского sealed класса, что очень удобно, и т.п.
Статья актуальна разве что для Dart 2.
В общих словах про ЯП Dart