今天,我遇到了一个问题,要求我在perl中确定数组的最大索引。我以前是这样做的:
my @array = (1, 2, 3);
print $array[@array - 1];
但今天我偶然发现了这段代码:
my @array = (1, 2, 3);
print $array[$#array];
我在文档里找不到任何关于这件事的东西。$#
构造到底是什么?那是一个操作员吗?它是如何工作的,它比第一段代码更快吗?它总是返回最大数组索引吗?它是不是被弃用了?
我知道这有很多问题,但它们都可以归结为一个,这就是我真正想知道的:它是如何工作的?
发布于 2011-12-24 01:24:54
perldoc perldata, section "Scalar Values"中记录了这一点。简而言之,$#array
是@array
的最后一个索引。至于它是如何工作的-它有点像运算符,但只是和$
和@
是运算符一样。可以把它看作是特殊的语法。数组的最后一个索引恰好是“有一个名字”。它是一个你可以读取和赋值的变量。
发布于 2011-12-24 01:24:06
发布于 2011-12-24 01:23:52
这就给出了最后一个索引。它被记录在perldata - http://perldoc.perl.org/perldata.html中
https://stackoverflow.com/questions/8618858
复制相似问题