gpt4 book ai didi

perl - '@_' 在 Perl 中做什么?

转载 作者:行者123 更新时间:2023-12-04 04:43:18 24 4
gpt4 key购买 nike

我正在浏览我在 Perl 类中编写的一些代码,我注意到了这一点。

my ($string) = @_;
my @stringarray = split(//, $string);

我想知道两件事:
变量在括号中的第一行,这是您在声明多个变量时所做的事情,如果我删除它们,它仍然可以正常工作吗?

第二个问题是@_ 做什么?

最佳答案

@_变量是一个数组,其中包含传递给子程序的所有参数。
$string 周围的括号变量是绝对必要的。它们表示您正在从数组中分配变量。没有它们,@_数组被分配给 $string在标量上下文中,这意味着 $string将等于传递给子程序的参数数量。例如:

sub foo {
my $bar = @_;
print $bar;
}

foo('bar');

这里的输出是 1——在这种情况下绝对不是你所期望的。

或者,您可以分配 $string变量而不使用 @_数组并使用 shift函数代替:
sub foo {
my $bar = shift;
print $bar;
}

使用一种方法而不是另一种方法是一个品味问题。我问了这个问题 which you can check out如果你感兴趣。

关于perl - '@_' 在 Perl 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/452775/

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