Обобщенная функция в Dart
Параметр типа у функции пишут в угловых скобках сразу после имени. Дальше это имя можно ставить в типы аргументов и в тип результата - как обычное имя типа, только оно задается на месте объявления.
Функция, которая возвращает список из одного переданного значения, подходит для любого типа элемента:
List<T> asList<T>(T value) {
return [value];
}
При вызове компилятор часто сам подставляет
конкретный тип вместо T по переданному
значению. Явно тип тоже можно указать в угловых
скобках у имени функции:
List<T> asList<T>(T value) {
return [value];
}
final tags = asList("io");
final codes = asList<int>(404);
print(tags);
print(codes);
Для строки T становится String без
дополнительной записи. Для числа явная запись
asList<int> нужна, когда из аргумента
тип неочевиден или его нужно зафиксировать
жестко.
Объявите функцию, которая принимает одно
значение и возвращает список из двух таких
же элементов подряд. Для строки "ab"
выведите полученный список.
Для числа 7 получите список из двух
элементов с явным указанием типа элемента
в угловых скобках у функции и выведите
результат.