Lua(数组)

Lua 数组基础概念

Lua 中的数组实际上是用整数索引的 table,是一种特殊形式的表。数组索引通常从 1 开始(Lua 惯例),但也可以从其他值开始。

创建数组

通过表构造器初始化数组:

lua 复制代码
-- 索引从 1 开始的数组  
local arr = {10, 20, 30, "hello"}  

-- 显式指定索引(可自定义起始索引)  
local arr2 = {[1] = "a", [2] = "b", [3] = "c"}  

访问和修改元素

通过索引直接操作:

lua 复制代码
print(arr[1])  -- 输出 10  
arr[2] = 200   -- 修改第二个元素  
arr[5] = 50    -- 新增第五个元素  

遍历数组

使用 ipairsfor 循环:

lua 复制代码
-- ipairs 遍历(从 1 到连续整数索引结束)  
for i, v in ipairs(arr) do  
    print(i, v)  
end  

-- 数值 for 循环  
for i = 1, #arr do  
    print(arr[i])  
end  

获取数组长度

# 操作符返回连续整数索引部分的最大索引值

lua 复制代码
print(#arr)  -- 若 arr = {10, 20, nil, 40}, 输出 2(因第三位为 nil)  

多维数组

通过嵌套 table 实现:

lua 复制代码
local matrix = {  
    {1, 2, 3},  
    {4, 5, 6}  
}  
print(matrix[1][2])  -- 输出 2  

example:

Lua 复制代码
-- 初始化数组
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 开始:Lua 惯例,但技术上可从任意值开始。
  • 非连续索引 :若数组含 nil 空隙,#ipairs 可能不会遍历全部元素。
  • 动态扩展:数组大小无需预先声明,插入新元素会自动扩展。

实用操作示例

插入元素

lua 复制代码
table.insert(arr, 3, "new")  -- 在位置 3 插入 "new"  

删除元素

lua 复制代码
table.remove(arr, 2)  -- 移除第二个元素  

排序

lua 复制代码
table.sort(arr)  -- 默认升序  
table.sort(arr, function(a, b) return a > b end)  -- 降序  
相关推荐
神仙别闹7 小时前
基于 C++ 实现(控制台)学生成绩管理系统
开发语言·c++
伞伞悦读8 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
2601_9669496511 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
m0_7345717611 小时前
深入理解5g <十八>传输块tbsize的计算
开发语言·5g
RAN114267600813 小时前
1.3第一个程序的介绍
开发语言·qt
blue_ice .13 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^1382879887214 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
泡海椒14 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)15 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
2501_9336707915 小时前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言