有谁知道为什么$#a
比数组中实际的元素数少一个?
$ perl -we '@a=(1,2);print $#a'
1
答案 0 :(得分:12)
这是最后一项的索引,因为数组从零开始(除非你搞好最好的东西),$#a
比数组的长度少一个。
答案 1 :(得分:11)
我想这是因为它是数组中最后一个元素的索引。由于数组索引从0开始,因此需要添加一个以获取数组中元素的总数。
注意:您也可以这样做来查找数组的计数:
@arr = ("one", "two");
$count = @arr;
print $count;
答案 2 :(得分:3)
数组@a = ("a","b","c");
$的值#a =最后一个元素的索引(= 2)。
$a[0] = "a";
$a[1] = "b";
$a[2] = "c";
如果要获取数组中的元素数,可以将数组分配给标量 像
$arrayLength = @a;
#(= 3)
希望这有助于你
答案 3 :(得分:2)
$#array
用于查找数组中最后一个元素的索引。
在上面的示例中,它是位置1 - 因为数组中的索引在perl中从0开始。
答案 4 :(得分:2)
每个人都在告诉你它返回的是什么(你已经知道),但你问为什么它会返回它的作用。
不幸的是,它不可能回答为什么它会返回它的功能。也许是因为它使以下更容易?
for (0..$#a) {
...
}