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.19.6/dart-core/Uri/replace.html

Spec-Zone.ru

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