gpt4 book ai didi

perl - 如何测试是否定义并返回值或某些默认值

转载 作者:行者123 更新时间:2023-12-04 16:59:27 26 4
gpt4 key购买 nike

在我的代码中,我经常这样写:

my $a = defined $scalar ? $scalar : $default_value;

或者
my $b = exists $hash{$_} ? $hash{$_} : $default_value;

有时散列很深,代码可读性不强。有没有更简洁的方法来完成上述任务?

最佳答案

假设您使用的是 Perl 5.10 及更高版本,您可以使用 //运算符(operator)。

my $a = defined $x ? $x : $default;  # clunky way
my $a = $x // $default; # nice way

同样你可以做
my $b = defined $hash{$_} ? $hash{$_} : $default;  # clunky
my $b = $hash{$_} // $default; # nice

请注意,在我上面的示例中,我正在检查 defined $hash{$_} ,不是 exists $hash{$_}就像你一样。存在没有定义的简写。

最后,您有 //=运营商,所以你可以这样做;
$a = $x unless defined $a;  # clunky
$a //= $x; # nice

这类似于 ||=这对真理也是如此:
$a = $x unless $x;  # Checks for truth, not definedness.
$a ||= $x;

关于perl - 如何测试是否定义并返回值或某些默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123301/

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