Lua的table类型的增删改查操作

增:

方法一:直接赋值

Lua 复制代码
local t = {}  -- 创建一个空表

-- 添加键值对
t["name"] = "Lua"  -- 添加字符串键
t[1] = "Hello"     -- 添加数字键

print(t["name"])  -- 输出: Lua
print(t[1])       -- 输出: Hello

方法二:使用**table.insert**

Lua 复制代码
local t = {"a", "b", "c"}

-- 在末尾插入
table.insert(t, "d")  -- t 变为 {"a", "b", "c", "d"}

-- 在指定位置插入
table.insert(t, 2, "x")  -- t 变为 {"a", "x", "b", "c", "d"}

print(table.concat(t, ", "))  -- 输出: a, x, b, c, d

方法三:使用 # 运算符

Lua 复制代码
local t = {"a", "b", "c"}

t[#t + 1] = "d"  -- 在末尾插入 "d" 注意这里的#t仅仅是统计整数下标的元素个数
print(table.concat(t, ", "))  -- 输出: a, b, c, d

删:

方法一:直接设置为nil

Lua 复制代码
local t = {a = 1, b = 2, c = 3}

-- 删除键为 "b" 的元素
t["b"] = nil

print(t["b"])  -- 输出: nil

方法二:使用remove函数

Lua 复制代码
local t = {"a", "b", "c", "d"}

-- 删除最后一个元素
table.remove(t)  -- t 变为 {"a", "b", "c"}

-- 删除指定位置的元素
table.remove(t, 2)  -- t 变为 {"a", "c"}

print(table.concat(t, ", "))  -- 输出: a, c

改:

方法一:修改键值对

Lua 复制代码
local t = {a = 1, b = 2, c = 3}

-- 修改键为 "a" 的值
t["a"] = 100

-- 修改键为 "b" 的值
t.b = 200

print(t["a"])  -- 输出: 100
print(t.b)     -- 输出: 200

方法二:嵌套表修改

Lua 复制代码
local t = {
    a = {1, 2, 3},
    b = {x = 10, y = 20}
}

-- 修改嵌套表中的值
t["a"][2] = 100  -- 修改 t.a 的第二个元素
t.b.y = 200      -- 修改 t.b 的键为 "y" 的值

print(t.a[2])    -- 输出: 100
print(t.b.y)     -- 输出: 200
相关推荐
2601_9620715715 分钟前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww89491111 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
淡海水1 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
CS_Zero2 小时前
C语言sizeof是函数吗?
c语言·开发语言
-今昭-3 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
zww89491114 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
黑马程序员毕设5 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳5 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
白山编程大哥5 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
_Twink1e5 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen