gpt4 book ai didi

perl - 是否可以保证在文档中的任何地方具有相同键的哈希值也具有相同的顺序?

转载 作者:行者123 更新时间:2023-12-04 04:46:41 25 4
gpt4 key购买 nike

关于Perl中的哈希键顺序,没有太多保证。在文档中是否有提及我找不到的说法,即只要两个散列使用完全相同的 key ,它们的顺序就会完全相同?

简短测试似乎证实了这一点。即使我在分配给两个不同的哈希值之间为内部键表生成了一些其他键,它们的键也会以相同的顺序返回:

my %aaa;
my %bbb;
my %ccc;
my %ddd;

@aaa{qw(a b c d e f g h i j k l)}=();
# Let's see if generating more keys for internal table matters
@ccc{qw(m n o p q r s t u v w x)}=();
@bbb{qw(a b c d e f g h i j k l)}=();
# Just to test if different insertion order matters
@ddd{qw(l k c d e f g h i j a)}=(); $ddd{b} = ();

print keys %aaa, "\n";
print keys %bbb, "\n";
print keys %ddd, "\n";

但是我不会依赖未记录在案的行为,唯一可以在文档中轻松找到的事实是,只要不修改哈希值, keysvalueseach都将使用相同的顺序。

最佳答案

从perlsec:

Perl has never guaranteed any ordering of the hash keys, and the ordering has already changed several times during the lifetime of Perl 5. Also, the ordering of hash keys has always been, and continues to be, affected by the insertion order.



http://perldoc.perl.org/perlsec.html

关于perl - 是否可以保证在文档中的任何地方具有相同键的哈希值也具有相同的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12724071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com