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


Dart Object.hash用法及代碼示例


dart:core 庫中Object.hash 方法的用法介紹如下。

用法:

@Since("2.14")   

int hash(
   Object? object1,    
   Object? object2,    
   [Object? object3 = sentinelValue,    
   Object? object4 = sentinelValue,    
   Object? object5 = sentinelValue,    
   Object? object6 = sentinelValue,    
   Object? object7 = sentinelValue,    
   Object? object8 = sentinelValue,    
   Object? object9 = sentinelValue,    
   Object? object10 = sentinelValue,    
   Object? object11 = sentinelValue,    
   Object? object12 = sentinelValue,    
   Object? object13 = sentinelValue,    
   Object? object14 = sentinelValue,    
   Object? object15 = sentinelValue,    
   Object? object16 = sentinelValue,    
   Object? object17 = sentinelValue,    
   Object? object18 = sentinelValue,    
   Object? object19 = sentinelValue,    
   Object? object20 = sentinelValue]   
)
      @Since("2.14")

為多個對象創建組合哈希碼。

通過對每個參數的 Object.hashCode 進行數字組合,計算所有實際提供的參數的哈希碼,即使它們是 null

例子:

class SomeObject {
  final Object a, b, c;
  SomeObject(this.a, this.b, this.c);
  bool operator ==(Object other) =>
      other is SomeObject && a == other.a && b == other.b && c == other.c;
  int get hashCode => Object.hash(a, b, c);
}

在單個程序執行期間多次使用相同的參數調用函數時,計算值將保持一致。

此函數生成的哈希值是not,保證在同一程序的不同運行期間或在同一程序的不同隔離區中運行的代碼之間保持穩定。使用的確切算法可能在不同平台之間或平台庫的不同版本之間有所不同,並且可能取決於每次程序執行時發生變化的值。

hashAll 函數在使用包含此函數的實際參數的集合以相同順序調用時給出與此函數相同的結果。

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 hash method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。