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
相关推荐
LawrenceLan2 分钟前
Flutter 零基础入门(十):final、const 与不可变数据
开发语言·flutter·dart
mjhcsp6 分钟前
C++ Manacher 算法:原理、实现与应用全解析
java·c++·算法·manacher 算法
Coder_Boy_7 分钟前
基于SpringAI的在线考试系统-企业级软件研发工程应用规范案例
java·运维·spring boot·软件工程·devops
indexsunny8 分钟前
互联网大厂Java面试实战:微服务、Spring Boot与Kafka在电商场景中的应用
java·spring boot·微服务·面试·kafka·电商
SUDO-117 分钟前
Spring Boot + Vue 2 的企业级 SaaS 多租户招聘管理系统
java·spring boot·求职招聘·sass
sheji341622 分钟前
【开题答辩全过程】以 基于spring boot的停车管理系统为例,包含答辩的问题和答案
java·spring boot·后端
重生之后端学习27 分钟前
21. 合并两个有序链表
java·算法·leetcode·链表·职场和发展
源代码•宸28 分钟前
Leetcode—1266. 访问所有点的最小时间【简单】
开发语言·后端·算法·leetcode·职场和发展·golang
遇见~未来31 分钟前
JavaScript数组全解析:从本质到高级技巧
开发语言·前端·javascript
南屿欣风32 分钟前
Sentinel 熔断规则 - 异常比例(order & product 示例)笔记
java·开发语言