gpt4 book ai didi

perl - 为什么我不能写@F[1..-1] 来获取元素 1..last?

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

在 Perl 中,数组索引 -1表示最后一个元素:

@F=(1,2,3);
print $F[-1]; # result: 3

您也可以使用 $#符号代替,这里 $#F :
@F=(1,2,3);
print $F[$#F]; # result: 3

那么为什么不 -1$#F当我想指定范围中的最后一个元素时,给出相同的结果:
print @F[1..$#F]; # 23
print @F[1..-1]; # <empty>

数组 @F[1..-1]应该真正包含来自元素 1 的所有元素到最后一个,不是吗?

最佳答案

您的问题是 @a[b..c]语法涉及两个不同的操作。第一 b..c被评估,返回一个列表,然后 @a[]使用该列表进行评估。范围运算符 ..不知道它用于数组下标,因此就它而言,1 和 -1 之间没有任何内容。它返回空列表,因此数组返回一个空切片。

关于perl - 为什么我不能写@F[1..-1] 来获取元素 1..last?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1150153/

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