当前位置: 首页 > 知识库问答 >
问题:

如何推入数组的哈希键?

濮阳靖
2023-03-14

我试图在Perl6中推入一个数组的散列。

my %c;
@{ $c{'USA'} } = qw(Seattle Madison Bozeman Portland);
push @{ $c{'USA'} }, 'Philadelphia';
my %c;
%c<USA> = 'Seattle', 'Madison', 'Bozeman', 'Portland';
%c{'USA'}.append: 'Philadelphia';

对于Perl6的push,我得到了一个类似的错误,鉴于https://docs.perl6.org/routine/push中的示例显示%h.push(1);尝试%c .push('Philadelphia') 也失败了

我在这里做错了什么?我在搜索引擎结果上没有看到这个错误


共有1个答案

米树
2023-03-14
my %c;
%c<USA> = ['Seattle', 'Madison', 'Bozeman', 'Portland'];
%c{'USA'}.append: 'Philadelphia';

括号构成数组而不是列表

链接指向列表、序列和数组文档,这些文档解释了差异,主要是列表是不可变的,而数组不是。

 类似资料:
  • 所以,我有一个带有数组的哈希,就像这样: 我想将它们合并到一个哈希数组中,组合相应的元素。 结果应该是这样的: 知道如何有效地做到这一点吗? 请注意,真实世界的使用场景可能包含数量可变的散列键。

  • 问题内容: 我对Redis还是很陌生,希望看看是否有可能。想象一下我正在接收这样的数据: 并为另一个帐户接收此数据: 我想以类似的格式将这些数据保留在Redis中: 对于xyz: 所以问题是我应该使用哪种数据类型来存储此Redis? 问题答案: 如果您的目标是检查是否用作该帐户的解决方案,则解决方案应类似于: 样本数据 执行此操作( 使用redis集 ): 然后,您可以通过以下命令检查是否用作该帐

  • 问题内容: 我想在redis中存储哈希数组,最好的编码方法是什么? 问题答案: AFAIK的唯一方法是取消引用它们。假设您有2个散列数组,例如:。 您将它们分别存储,然后创建一个引用它们全部的SET: 然后,您可以通过查询set:来检索它们全部,然后调用所有返回的键来重建原始的哈希数组。 我希望这是有道理的。而且,如果您找到了更聪明的方法,我将很高兴听到。

  • 寻找一种优雅的方式以特殊的方式合并两个散列数组: 如果名称关键字匹配,则结果必须包含< code>new_data的所有名称散列,仅包含< code>old_data的额外数据。 我的第一次尝试是这样的,但是它创建了一个额外的散列:

  • 我有 2 个数组: 我希望array1元素成为新Hash中的键,array2元素成为同一个Hash中相应的值。有人能建议一下怎么做吗? 谢谢

  • 我正试图让我的头脑围绕着一个哈姆特的细节。我会用Java自己实现一个,只是为了理解。我熟悉尝试,我想我得到了HAMT的主要概念。 基本上, 两种类型的节点: null null 我不太明白的部分是碰撞检测和缓解。在链接的论文中,他暗示了这一点: 然后将现有键插入到新的子哈希表中,并添加新键。每使用5个以上的散列比特,冲突的概率就减少1/32倍。偶尔,可能会消耗整个32位哈希,必须计算一个新的哈希来