【发布时间】:2014-01-26 03:49:56
【问题描述】:
最近我在perl 作品中遇到了负面索引。基本上,当我们在 perl 中给数组一个负索引时,它会从后面开始遍历。
例如:
@numbers = (1,2,3,4,5,6);
print "$numbers[-1]\n";
它将输出打印为 6。如果我将索引指定为 -2,那么它会打印 5 等等。
据我了解数组内存如下:
我想知道,索引 -1 如何在 perl 中变为 n。谁能解释一下这是如何工作的?
P.S:如果我在 java 中使用负索引,那么它会抛出 java.lang.ArrayIndexOutOfBoundsException
【问题讨论】:
-
你可以把
$numbers[-1]想成$numbers[ @numbers-1 ]也可以看看stackoverflow.com/q/15911115/223226 -
@mpapec,perl 解释器是否会负责将
-1转换为@numbers-1? -
你可以这么说,但减号只是指示 perl 从数组末尾获取元素。
-
@reinierpost:你为什么要分享一个来自五年前的 Perl 版本的文档链接? perldoc.perl.org/perldata.html#Subscripts 肯定会更好?
-
@Dave Cross:因为我见过的关于 Perl 的大多数问题,至少在这个级别上,都源于使用 10 甚至 15 年的 Perl 版本的人.