gpt4 book ai didi

perl - 为什么一个空的Perl哈希有一个键?

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

“如何在Perl中找出哈希值的大小?”的标准可通过谷歌搜索的答案。是“采用keys(%hash)的大小”:

my %h = {};
print scalar (keys (%h));

打印“1”。我原本期望为零。另一方面。相似地,
my %h = {};
$h{"a"} = "b";
$h{"x"} = "y";
print scalar keys (%h);
print "\nKey: $_" for (keys %h);

打印:

3

Key: a

Key: x

Key: HASH(0x229e8)



这种额外的值(value)从何而来?

最佳答案

这也让我感到难过。

my %h = ();

注意使用 ()而不是 {}

说明:值 {}是对哈希的引用,而不是哈希本身。在Perl中,引用是一种标量值,对 %h的赋值具有用于分配单个标量值的特殊处理。它对标量进行字符串化(在您的情况下为您提供字符串 HASH(0x229e8)),并将该键与值 undef关联。

使用 ()时,从列表到哈希的分配根据列表中的对创建键/值对,并且由于 ()为空,因此哈希 %h变为空。

关于perl - 为什么一个空的Perl哈希有一个键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5633297/

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