gpt4 book ai didi

perl - 如何 (sort {$a<=>$b;} @_)[0];工作?

转载 作者:行者123 更新时间:2023-12-02 05:44:24 25 4
gpt4 key购买 nike

我曾经读过下面的 Perl 子程序

sub min{
(sort {$a<=>$b;} @_)[0];
}

这里怎么理解sort和@_的用法呢? [0] 代表什么?

最佳答案

(...)[0] 返回括号内列表的第一个元素。

因此您的示例实际上与:

sub min{
my @tmp = sort { $a <=> $b } @_; # sort numerically
$tmp[0];
}

sub min{
my ($return) = sort { $a <=> $b } @_; # sort numerically
$return;
}

我想再指出一件事,上面的代码效率极低。尤其是在大型未排序列表上。

这是一个更明智的做法:

sub min{
$min = shift;
for( @_ ){
$min = $_ if $_ < $min;
}
return $min;
}

这基本上与用于 Pure Perl 的算法相同min 的版本在 List::Util .

你真的应该只使用 min来自 List::Util .

关于perl - 如何 (sort {$a<=>$b;} @_)[0];工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549636/

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