Использование динамического в дартс дженериках - PullRequest
1 голос
/ 10 апреля 2019

Есть ли разница между типами Future и Future<dynamic> в языке дартс? Например, в типе возврата функции:

Future f() { return ... }

и

Future<dynamic> f() { return ... }

1 Ответ

1 голос
/ 11 апреля 2019

Future само по себе эквивалентно Future<dynamic>.Однако не всегда верно, что GenericClass всегда эквивалентно GenericClass<dynamic>.Из Устранение общих проблем типа :

Рассмотрим следующий универсальный класс с параметром ограниченного типа , который расширяет Iterable:

class C<T extends Iterable> {
  final T collection;
  C(this.collection);
}

...

В Dart 2, когда экземпляр универсального класса создается без явных аргументов типа, каждый параметр типа по умолчанию имеет свою привязку типа (Iterable в этом примере), если одинзадан явно, или dynamic в противном случае.

Кроме того, в случае универсальных функций тип часто может быть выведен.

...