为未定义的哈希值设置默认值。

6

我有一个哈希表,其中大部分值都是整数,但有一些未定义。我想把所有这些未定义的值设为零,可以使用for循环或更优雅的方法。有人能提供一个解决方案吗?


不用担心“优雅”,只需将代码翻译成你能理解的内容。 - ysth
2
@ysth 在我看来,当 OP 询问“优雅”的时候,那意味着他知道如何用自己的方式编写代码,但想学习一种更有效的方法。对于这些问题,我给予 +1 :) - clt60
这个确实应该在第一次构建哈希时完成。 - Borodin
@jm666:不,我认为它经常意味着优雅,在某些风格指南下,而不是仅仅符合编写代码的人的逻辑。在它意味着你所说的情况下,“有效”的真正含义是“过早优化”。 - ysth
@ysth ;) 同意“过早”优化,但学习任何更“有效”的编程风格的一个好方法是向更有经验的程序员请教。例如,Ikgegami 以他在回答中的“极度”优化(通常几乎只写)代码而闻名,但我很高兴因为学到了许多新“知识”... ;) - clt60
学习总是好的。 - ysth
1个回答

11

两种方法都使用 foreach 循环。

for my $key (keys %hash) {
  $hash{$key} //= 0;

}

$_ //= 0 for values %hash;

//= 运算符测试变量是否未定义,并在变量未定义时分配新值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接