【发布时间】:2011-11-16 10:25:24
【问题描述】:
我似乎遇到了几种不同的方法来查找数组的大小。这三种方法有什么区别?
my @arr = (2);
print scalar @arr; # First way to print array size
print $#arr; # Second way to print array size
my $arrSize = @arr;
print $arrSize; # Third way to print array size
【问题讨论】:
-
其他方式:
print 0+@arr、print "".@arr、print ~~@arr -
@mob,嗯,可能有人想避免
"".@arr,因为"@arr"做了一些完全不同的事情。 -
“第二种方式”不是打印数组大小的方式...
-
在标量上下文中;@arr 返回表大小。 $x=@arr 是标量上下文。 $#arr 返回数组的最后一个索引。索引从 0 开始,然后是真正的方程式 $#arr+1 == @arr 。如果你乱写了一些元素,例如 $arr[100]='any',那么 table 会自动增加到最大索引 100,并且(包括索引 0)增加到 101 个元素。
-
这个问题出现在搜索引擎结果中,但似乎不太可能没有更早的问题,从 Stack Overflow 存在的头两年开始。有哪些候选人?
标签: perl