awk 中存储和检索键的顺序是如何确定的?

awk 中存储和检索键的顺序是如何确定的?

我刚刚开始学习 awk,并熟悉关联数组,却发现检索(或存储)键的顺序没有多大意义。因此,我做了一些简单的研究,但我不断得到类似于“关联数组中的元素不以任何特定顺序存储”的答案(来源)或迄今为止我发现的最好的“此语句访问数组元素的顺序是由 awk 中数组元素的内部排列决定的,而在标准 awk 中无法控制或更改”(来源)。然而,后一种说法并没有多大意义(至少对我来说)。那么,什么决定了数组元素的内部排列呢?

答案1

它存储为哈希表:

https://www.gnu.org/software/gawk/manual/html_node/Array-Intro.html

所以这意味着 awk 计算键的哈希值并将其放入特定的 bin 中,这就是键值对的存储方式。您可以在此处阅读有关哈希表的更多信息:

http://en.wikipedia.org/wiki/Hash_table

相关内容