gpt4 book ai didi

perl - return 和 return 有什么区别;并返回 undef;在 Perl 中

转载 作者:行者123 更新时间:2023-12-03 10:19:18 25 4
gpt4 key购买 nike

执行的子程序之间有区别吗

return;

一个呢?
return undef;

最佳答案

return;将在列表上下文中返回一个空列表,但 undef在标量上下文中。 return undef;将始终返回单个值 undef即使在列表上下文中。

一般来说,return undef; 通常不是一个好主意。来自通常在列表上下文中使用的子程序:

sub foo { return undef }
if ( my @x = foo() ) {
print "oops, we think we got a result";
}

一般来说, return; 通常不是一个好主意。来自通常在标量上下文中使用的子例程,因为它不会像用户在列表上下文中期望的那样表现:
sub foo { return }
%x = ( 'foo' => foo(), 'bar' => 'baz' );
if ( ! exists $x{'bar'} ) {
print "oops, bar became a value, not a key";
}

这两个错误在实践中都会发生很多,后者更是如此,也许是因为预期返回标量的 subs 更常见。如果它期望返回一个标量,它最好返回一个标量。

关于perl - return 和 return 有什么区别;并返回 undef;在 Perl 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3435122/

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