最近我在perl
项目中接触到了负数索引。当我们给一个数组在perl中使用负数索引时,它会从后往前遍历。
例如:
@numbers = (1,2,3,4,5,6);
print "$numbers[-1]\n";
它将输出
6
。如果我给定索引为-2
,那么它会打印5
,以此类推。根据我的理解,数组的内存如下图所示:
![enter image description here](https://istack.dev59.com/PiRcZ.webp)
-1
如何变成了n
。有人能解释一下这是如何工作的吗?附言:如果在
java
中使用负索引,则会抛出java.lang.ArrayIndexOutOfBoundsException
异常。
$numbers[-1]
理解为$numbers[ @numbers-1 ]
。另外请查看 https://dev59.com/7XDYa4cB1Zd3GeqPDrts。 - mpapec