gpt4 book ai didi

raku - 为什么分配给变量列表不一致?

转载 作者:行者123 更新时间:2023-12-04 05:37:09 25 4
gpt4 key购买 nike

要从 sub 返回的列表中保存 2 个值并丢弃第三个值,可以;

(my $first, my $second) = (1, 2, 3);
print $first, "\n";
print $second, "\n";
exit 0;

它按预期工作(在 perl5 和 perl6 中)。但是,如果您只想要第一个;
(my $first) = (1, 2, 3);
print $first, "\n";
exit 0;

...你得到了整个列表。这似乎违反直觉 - 为什么不一致?

最佳答案

这应该是由于 single argument rule .您可以通过添加尾随 , 来获得预期的行为。 :

(my $first,) = (1, 2, 3);

请注意,虽然这作为声明返回容器起作用,它们是可以放入列表的一流对象,但您仍然“错误”:

作业应该读
my ($first, $second) = (1, 2, 3);


my ($first) = (1, 2, 3);

另请注意,右侧的括号也是多余的(逗号用于构建列表);更惯用的版本是
my ($first, $second) = 1, 2, 3;


my ($first) = 1, 2, 3;

关于raku - 为什么分配给变量列表不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36000205/

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