我知道 Perl 中的哈希值没有排序。我担心的是我是否可以依赖索引关系中出现的键和值。
假设我有这个哈希值
my %h = ("a" => 1, "b" => 2, "c" => 3, "d" => 4);
If I do keys %h
,我可能会得到
("b", "a", "d", "c")
我能保证values %h
会以相同的顺序出现来匹配密钥吗?我可以期待吗?
(2, 1, 4, 3)
或者说不能保证之间有任何索引关系keys %h
and values %h
?
是的。只要哈希不改变(插入或删除),keys
, values
and each
将保持相同的顺序:
只要给定的散列未被修改,您就可以依赖键、值和每个键、值来重复返回彼此相同的顺序。
– from perldoc -f keys http://perldoc.perl.org/functions/keys.html
所以你可以安全地复制哈希,例如:
my %orig = ...;
my %copy;
@copy{keys %orig} = values %orig;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)