【发布时间】:2011-02-23 20:04:45
【问题描述】:
如果我在 Perl 中有一个包含完整和连续整数映射的哈希(即,从 0 到 n 的所有键都映射到某个东西,除此之外没有键),有没有办法将它转换为数组?
我知道我可以遍历键/值对并将它们放入一个新数组中,但有些东西告诉我应该有一个内置的方法来做到这一点。
【问题讨论】:
-
咆哮警告! 为什么每个人都想对键进行排序?没有必要,它使算法慢得多!排序很慢! runrig 的答案是这里最好的答案。如果散列稀疏,它将起作用。数组保持顺序,但它们是随机访问结构。伙计们,我们不使用链接列表!
-
你是对的:有一种内置的方法。请参阅Ether's answer。 :) 这个问题是列表上下文和数组之间存在差异的另一个原因。再加上切片,它可以让你在列表和哈希之间进行转换,而无需任何特殊的魔法或迭代,而恕我直言是 Perl 最强大的特性之一。