gpt4 book ai didi

performance - 使用 'exists' 进行额外的哈希查找?

转载 作者:行者123 更新时间:2023-12-04 17:05:54 24 4
gpt4 key购买 nike

我有时会访问这样的哈希:

if(exists $ids{$name}){
$id = $ids{$name};
}

这是好的做法吗?我有点担心它包含两个真正应该完成的查找。有没有更好的方法来检查存在并分配值?

最佳答案

通过与 exists 核对,您可以防止自动激活。见 Autovivification : What is it and why do I care? .

更新:trendels下面指出,自动激活在您发布的示例中不起作用。我假设实际代码涉及多级哈希。

这是一个插图:

#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my (%hash, $x);

if ( exists $hash{test}->{vivify} ) {
$x = $hash{test}->{vivify}->{now};
}

print Dumper \%hash;

$x = $hash{test}->{vivify}->{now};

print Dumper \%hash;

__END__


C:\Temp> t
$VAR1 = {
'test' => {}
};
$VAR1 = {
'test' => {
'vivify' => {}
}
};

关于performance - 使用 'exists' 进行额外的哈希查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/977387/

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