Есть ли разница между типами Future и Future<dynamic> в языке дартс? Например, в типе возврата функции:
Future
Future<dynamic>
Future f() { return ... }
и
Future<dynamic> f() { return ... }
Future само по себе эквивалентно Future<dynamic>.Однако не всегда верно, что GenericClass всегда эквивалентно GenericClass<dynamic>.Из Устранение общих проблем типа :
GenericClass
GenericClass<dynamic>
Рассмотрим следующий универсальный класс с параметром ограниченного типа , который расширяет Iterable: class C<T extends Iterable> { final T collection; C(this.collection); } ... В Dart 2, когда экземпляр универсального класса создается без явных аргументов типа, каждый параметр типа по умолчанию имеет свою привязку типа (Iterable в этом примере), если одинзадан явно, или dynamic в противном случае.
Рассмотрим следующий универсальный класс с параметром ограниченного типа , который расширяет Iterable:
Iterable
class C<T extends Iterable> { final T collection; C(this.collection); }
...
В Dart 2, когда экземпляр универсального класса создается без явных аргументов типа, каждый параметр типа по умолчанию имеет свою привязку типа (Iterable в этом примере), если одинзадан явно, или dynamic в противном случае.
dynamic
Кроме того, в случае универсальных функций тип часто может быть выведен.