gpt4 book ai didi

perl - `my ($h, @s) = @_;` 和 `my ($h, @s) = grep $_, @_;` 有什么区别

转载 作者:行者123 更新时间:2023-12-01 13:12:31 25 4
gpt4 key购买 nike

我在一本名为“High-order Perl”的书中读到这段代码,我只是不明白为什么要费心使用 grep,但是如果我改成第一条语句,事情就开始出错了,谁能解释一下一点点?谢谢。

上下文:代码位于第6章和第5节,在

sub union {
my ($h, @s) = grep $_, @_;
return unless $h;
return $h unless @s;
node(head($h), promise {
union(@s, tail($h));
});
}

最佳答案

my ($h, @s) = @_; 取数组 @_ 的第一个值放入 $h 其余部分在 @s 中。

my ($h, @s) = grep $_, @_; 获取第一个真值并将其放入 $h 中,其余的真值值并将其放入 @s

perl 中的真值不是空字符串 ''、0 或 undef。

关于perl - `my ($h, @s) = @_;` 和 `my ($h, @s) = grep $_, @_;` 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33752749/

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