English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
النظام المتكرر هو مجموعة من العناصر التي تكون من نفس نوع البيانات مرتبة بطريقة معينة، يمكن أن يكون أحادي الأبعاد أو متعدد الأبعاد.
يمكن استخدام الأرقام لتمثيل مفتاحي النظام المتكرر بلغة Lua، وعدد العناصر في النظام المتكرر ليس ثابتاً.
العدد الأحادي هو أبسط أنواع الأنظمة المتكررة، وهو له بنية منطقية تكون جدولاً خطياً. يمكن استخدام دورة for لاستخراج عناصر النظام المتكرر، مثل المثال التالي:
array = {"Lua", "教程"} for i = 0, 2 do print(array[i]) end
以上代码执行输出结果为:
nil Lua 教程
正如你所看到的,我们可以使用整数索引来访问数组元素,如果知道的索引没有值则返回nil。
在 Lua 索引值是以 1 为起始,但你也可以指定 0 开始。
除此外我们还可以以负数为数组索引值:
array = {} for i = -2, 2 do array[i] = i * 2 end for i = -2,2 do print(array[i]) end
以上代码执行输出结果为:
-4 -2 0 2 4
多维数组即数组中包含数组或一维数组的索引键对应一个数组。
以下是一个三行三列的阵列多维数组:
-- 初始化数组 array = {} for i=1,3 do array[i] = {} for j=1,3 do array[i][j] = i*j end end -- 访问数组 for i=1,3 do for j=1,3 do print(array[i][j]) end end
以上代码执行输出结果为:
1 2 3 2 4 6 3 6 9
不同索引键的三行三列阵列多维数组:
-- 初始化数组 array = {} maxRows = 3 maxColumns = 3 for row=1,maxRows do for col=1,maxColumns do array[row*maxColumns + col] = row*col end end -- 访问数组 for row=1,maxRows do for col=1,maxColumns do print(array[row*maxColumns + col]) end end
以上代码执行输出结果为:
1 2 3 2 4 6 3 6 9
正如你所看到的,以上的示例中,数组设定了指定的索引值,这样可以避免出现 nil 值,有利于节省内存空间。