Spec-Zone.ru › Dart 2

dart:core

Метод replace

Uri replace(
  1. {String? scheme,
  2. String? userInfo,
  3. String? host,
  4. int? port,
  5. String? path,
  6. Iterable<String>? pathSegments,
  7. String? query,
  8. Map<String, dynamic>? queryParameters,
  9. String? fragment}
)

Создает новую Uri на основе этой, но с некоторыми замененными частями.

Этот метод принимает те же параметры, что и конструктор Uri, и они имеют тот же смысл.

Максимум один из path и pathSegments должен быть предоставлен. Аналогично, максимум один из query и queryParameters должен быть предоставлен.

Каждая часть, которая не предоставлена, по умолчанию будет соответствовать соответствующему значению из этой Uri.

Этот метод отличается от Uri.resolve, который переопределяет иерархическим образом, и может вместо этого заменить каждую часть Uri индивидуально.

Пример:

final uri1 = Uri.parse(
    'http://dart.dev/guides/libraries/library-tour#utility-classes');

final uri2 = uri1.replace(
    scheme: 'https',
    path: 'guides/libraries/library-tour',
    fragment: 'uris');
print(uri2); // https://dart.dev/guides/libraries/library-tour#uris

Этот метод действует аналогично использованию конструктора Uri с некоторыми аргументами, взятыми из этой Uri. Пример:

final Uri uri3 = Uri(
    scheme: 'https',
    userInfo: uri1.userInfo,
    host: uri1.host,
    port: uri2.port,
    path: '/guides/language/language-tour',
    query: uri1.query,
    fragment: null);
print(uri3); // https://dart.dev/guides/language/language-tour

Использование этого метода можно рассматривать как сокращение для вызова конструктора 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 BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Uri/replace.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API