加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl6 – 如何在Perl 6中创建哈希数组?

发布时间:2020-12-16 06:19:49 所属栏目:大数据 来源:网络整理
导读:如何将已被推入数组的哈希独立于“源”哈希? my %country;my Hash @array;%country{ 'country' } = 'France';@array.push(%country);%country{ 'country' } = 'Germany';@array.push(%country);.say for @array; 输出是: {country = Germany}{country = Ge
如何将已被推入数组的哈希独立于“源”哈希?

my %country;
my Hash @array;

%country{ 'country' } = 'France';
@array.push(%country);
%country{ 'country' } = 'Germany';
@array.push(%country);

.say for @array;

输出是:

{country => Germany}
{country => Germany}

当然,这不是我想要的.

解决方法

当您将哈希%国家/地区推送到阵列时,您将推送对%country的引用.这样,每个数组元素都将引用相同的原始哈希%国家/地区.当您更改散列值时,所有数组元素都将反映此更改(因为它们都引用相同的散列).如果要在每次推送时创建新哈希,可以尝试使用匿名哈希来代替.例如:

%country{ 'country' } = 'France';
@array.push({%country});
%country{ 'country' } = 'Germany';
@array.push({%country});

通过这种方式,每次都会推送对%country副本的引用(而不是对%country的引用).

输出:

{country => France}
{country => Germany}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读