заменить абстрактный метод
Uri replace(Возвращает новый Uri на основе этого, но с некоторыми замененными частями.
Этот метод принимает те же параметры, что и конструктор new Uri, и они имеют то же значение.
Максимум один из path и pathSegments должен быть предоставлен. Точно так же, максимум один из query и queryParameters должен быть предоставлен.
Каждая часть, которая не предоставлена, будет по умолчанию соответствовать соответствующему значению из этого Uri вместо этого.
Этот метод отличается от Uri.resolve, который перезаписывает иерархическим способом, и может вместо этого заменить каждую часть Uri индивидуально.
Пример:
Uri uri1 = Uri.parse("a://b@c:4/d/e?f#g");
Uri uri2 = uri1.replace(scheme: "A", path: "D/E/E", fragment: "G");
print(uri2); // prints "a://b@c:4/D/E/E?f#G"
Этот метод действует аналогично использованию конструктора new Uri с некоторыми аргументами, взятыми из этого Uri. Пример:
Uri uri3 = new Uri(
scheme: "A",
userInfo: uri1.userInfo,
host: uri1.host,
port: uri1.port,
path: "D/E/E",
query: uri1.query,
fragment: "G");
print(uri3); // prints "a://b@c:4/D/E/E?f#G"
print(uri2 == uri3); // prints true.
Использование этого метода можно рассматривать как сокращенную запись для вызова конструктора Uri выше, но также может быть немного быстрее, потому что части, взятые из этого Uri , больше не нужно проверять на корректность.
Исходный код
Uri replace(
{String scheme,
String userInfo,
String host,
int port,
String path,
Iterable<String> pathSegments,
String query,
Map<String, dynamic /*String|Iterable<String>*/ > queryParameters,
String fragment});
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/Uri/replace.html