gpt4 book ai didi

arrays - 为什么|| =不能用于数组?

转载 作者:行者123 更新时间:2023-12-03 13:48:59 25 4
gpt4 key购买 nike

我使用||=运算符为变量提供默认值,例如

$x ||= 1;


我尝试将这种语法与数组一起使用,但出现语法错误:

@array||= 1..3; 
Can't modify array dereference in logical or assignment (||=) ...


这是什么意思,我该如何为数组提供默认值?

最佳答案

因为||是标量运算符。如果@array||= 1..3;有效,它将在标量上下文中评估1..3,这不是您想要的。它还会在标量上下文中评估数组(没关系,因为标量上下文中的空数组为false),但不能分配给scalar(@array)

要分配默认值,请使用:

@array = 1..3 unless @array;


但是请注意,无法区分从未初始化的数组和已分配空列表的数组之间的区别。它与标量不同,您可以在其中区分 undef和空字符串(尽管 ||=不能区分它们)。

eugene y找到了 this perl.perl5.porters message(Perl开发人员的官方邮件列表),对此进行了更详细的介绍。

关于arrays - 为什么|| =不能用于数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4385998/

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