gpt4 book ai didi

perl - 为什么map返回一个空数组?

转载 作者:行者123 更新时间:2023-12-02 20:17:34 24 4
gpt4 key购买 nike

我在 Perl 中遇到一个问题,我不明白。我将其精简为非常短的代码。

为什么 Perl 的 map 函数返回空数组?它不应该返回一个包含 9 个 undef 的数组吗?

sub mySub{
return;
}

my @arr = (1 .. 9);
my @arr2 = map( mySub($_), @arr );

print @arr . ' ' . @arr2, "\n";

它打印“9 0”。

这可能很简单,但是 perldoc 没有帮助。

最佳答案

对您的问题的更一般的答案是:当不带参数使用 return 时,它返回的值取决于调用上下文:

list context    returns an empty list
scalar context returns an undefined value

例如:

use strict;
use warnings;
use Data::Dumper;

my (@list);
sub mySub { return }
@list = map( mySub($_), 1..2); print Dumper(\@list);
@list = map(scalar mySub($_), 1..2); print Dumper(\@list);

输出:

$VAR1 = [];
$VAR1 = [
undef,
undef
];

关于perl - 为什么map返回一个空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1160874/

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