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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。