当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart Uri.replace用法及代码示例


dart:core 库中Uri.replace 方法的用法介绍如下。

用法:

Uri replace(
   {String? scheme,    
   String? userInfo,    
   String? host,    
   int? port,    
   String? path,    
   Iterable<String>? pathSegments,    
   String? query,    
   Map<String, dynamic>? queryParameters,    
   String? fragment}   
)

在此基础上创建一个新的Uri,但替换了一些部件。

此方法与Uri 构造函数采用相同的参数,并且它们具有相同的含义。

最多必须提供pathpathSegments 之一。同样,最多必须提供queryqueryParameters 之一。

未提供的每个部分将默认为此 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 中取出的部分不需要再次检查有效性。

相关用法


注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 replace method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。