大多数编程语言中,一个数组很容易计算数组长度,一般都是使用现成的函数或者通过计算得到,比如:
Python
array = [1, 2, 3, 4, 5]
length = len(array)
JavaScript
let array = [1, 2, 3, 4, 5];
let length = array.length;
Java
int[] array = {1, 2, 3, 4, 5};
int length = array.length;
C#
int[] array = {1, 2, 3, 4, 5};
int length = array.Length;
C++
int array[] = {1, 2, 3, 4, 5};
int length = sizeof(array) / sizeof(array[0]);
Ruby
array = [1, 2, 3, 4, 5]
length = array.length
Go
array := []int{1,2,3,4,5}
length := len(array)
lua也有长度运算符,是#
Lua
local array = {1,2,3,4,5}
local length = #array
但lua和其它语言不同之处是lua的数组索引从1开始,因此
Lua
--例1
local array1 = {}
for i=1, 5 do
array1[i] = i
end
print(#array1)--5
--例2
local array2 = {}
for i=0, 5 do
array2[i] = i
end
print(#array2) --5
--例3
local array3 = {}
for i=-5, 5 do
array3[i] = i
end
print(#array3) --5
上面三个例子输出结果都是5,因为**#** 这个长度运算符是从1开始计数
要想计算表array3的元素个数,需要用pairs来遍历。
Lua
local len = 0
for k,v in pairs(array3) do
len = len + 1
end
print(len) --11
要注意,这种方式求得的是表array3的长度,而不是array3包含的数组长度。