當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。