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


Dart Object.hashAll用法及代码示例


dart:core 库中Object.hashAll 方法的用法介绍如下。

用法:

@Since("2.14")   

int hashAll(
   Iterable<Object?> objects   
)
      @Since("2.14")

为一系列对象创建组合哈希码。

通过以迭代顺序将每个元素的 Object.hashCode 进行数字组合,即使它们是 null ,也会为 objects 中的元素计算哈希码。

hashAll([o]) 的结果不是 o.hashCode

例子:

class SomeObject {
  final List<String> path;
  SomeObject(this.path);
  bool operator ==(Object other) {
    if (other is SomeObject) {
      if (path.length != other.path.length) return false;
      for (int i = 0; i < path.length; i++) {
        if (path[i] != other.path[i]) return false;
      }
      return true;
    }
    return false;
  }

  int get hashCode => Object.hashAll(path);
}

在单个程序执行期间,使用具有相同哈希码的对象以相同顺序再次调用该函数时,计算值将保持一致。

此函数生成的哈希值是not,保证在同一程序的不同运行期间或在同一程序的不同隔离区中运行的代码之间保持稳定。使用的确切算法可能在不同平台之间或平台库的不同版本之间有所不同,并且可能取决于每次程序执行时发生变化的值。

相关用法


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