string.hashCode在dart版本上是否稳定?

string.hashCode在dart版本上是否稳定?,dart,Dart,问这个问题是因为我在执行print('${“abc.hashCode}')时注意到在dartpad上提供102006619,而在本地运行它则产生756227931 我的飞镖版本: $ dart --version Dart SDK version: 2.9.0-21.10.beta (beta) (Tue Jul 21 10:46:30 2020 +0200) on "linux_x64" 那么我猜答案是“不”。 或者可能是“视情况而定”,或者“很复杂” 我不相信Dart最

问这个问题是因为我在执行
print('${“abc.hashCode}')时注意到在dartpad上提供
102006619
,而在本地运行它则产生
756227931

我的飞镖版本:

$ dart --version
Dart SDK version: 2.9.0-21.10.beta (beta) (Tue Jul 21 10:46:30 2020 +0200) on "linux_x64"

那么我猜答案是“不”。 或者可能是“视情况而定”,或者“很复杂”

我不相信Dart最近改变了字符串的散列码算法,但没有保证不会发生。因此,它在不同版本之间可能是稳定的,但不能保证保持这种状态

但是,不同平台的算法可能有所不同。Dart2js生成的JavaScript,就像在DartPad中运行的JavaScript一样,本机代码不运行VM。它们在计算字符串哈希的方式上确实有所不同。我不知道dev编译器是否有第三个版本,但我猜它可能会遵循dart2js