字典
字典的本质运用 键值对 一个键对应一个值 和自定义索引表 相似
定义使用
--字典是由键值对构成
a ={["name"]="洛溪",["age"]= 14, ["1"]= 10}
-- 访问单个变量 用中括号填键 来访问
print( a["name"])
print( a["1"])
print( a["age"])
--还可以类似成员变量的形式得到值
-- 虽然可以通过,成员变量的形式得到值 但是不能是数字
print(a.name)
print(a.age)
增删改
-- 修改
a["name"]= "洛溪欢迎"
print(a.name)
-- 新增
-- Lua 增加 直接赋值 如果没有键 会自动创建
a["sex"]=false;
print(a["sex"])
--删除
a["sex"] =nil
print(a.sex)
遍历
print("***********字典的遍历1************")
-- 如果要模拟字典 遍历一定用pairs
for i,k in pairs(a) do
--可以传多个参数 一样可以打印出来
print(i.."_"..k)
end
print("***********字典的遍历*2***********")
for k in pairs(a) do
--通过键直接访问表中元素
print(k)
print(a[k])
end
print("***********字典的遍历3************")
for _,v in pairs(a) do
--只需要输出值
print(v)
end
类和结构体
Lua 中是默认没有面向对象的 需要我们自己来实现
成员变量 成员函数...
Student ={
--年龄
age=18,
--性别
sex=true,
--升级函数
Up = function()
print("升级"..Student.age)
end,
-- 成长函数
Learn =function(t)
print("锻炼自己",t.sex)
end
}
--lua 中 . 和冒号的区别 .(成员变量)
-- 调用成员函数(需要传入值)
Student.Learn(Student)
--冒号调用方法 会默认把调用者 作为第一个参数传入方法中
Student:Learn()
-- 声明表过后 再表外去申明表有的变量和方法
-- 添加name属性
Student.name ="洛溪"
Student.Speak = function()
-- body
print("聊天")
end
--第三种声明方式
function Student:Speak2()
-- body
--lua中 有一个关键字 self表示 默认传入的第一个参数
print("聊天2",self.name)
end
--C# 要是使用类 实例化对象new 静态直接点
--Lua中类的表现 更像是一个类中有很多 静态变量和函数
print(Student.age)
print(Student.name)
Student.Up();
Student.Speak();
Student:Speak2();
Student.Speak2(Student);
表的公共操作
先定义变量
t1 = {{age =1,name="洛溪"},{age=2,name="白芷"}}
t2 = {name ="艾洛溪",sex =true}
插入
关键字 table.insert
print(#t1)
--将表2赋值到表1 浅拷贝
table.insert(t1,t2)
print(#t1)
删除
关键字 table.remove
--删除指定元素
-- remove 方法 传表进入 默认会移除最后一个索引的内容
table.remove(t1)
print(#t1)
print(t1[1].name)
print(t1[2].name)
-- remove 方法 传两个参数 第一个参数 是要移除内容的表
--第二个参数 是要移除内容位置的索引 从1开始
table.remove(t1,1)
print(#t1)
print(t1[1].name)
print(t1[2])
公共操作排序
关键字 table.sort
t2={5,2,7,9,1}
--默认升序
table.sort(t2)
-- 查看是否已排序
for _,v in pairs(t2) do
print(v)
end
-- 重写排序规则
--降序
-- 第一个参数需要排序的表 第二个参数 需要排序的规则
table.sort( t2, function(a,b)
if a>b then
return true
end
end)
-- 查看是否已排序
for _,v in pairs(t2) do
print(v)
end
公共操作拼接
关键字 table.concat
tb = {"123","456","789","10101"}
-- 连接函数 用于拼接表中元素 返回值 是一个字符串
str =table.concat( tb, "_" )
print(str)
标签:end,name,--,t1,语法,Lua,Student,print,字典
From: https://www.cnblogs.com/Luo-Xi/p/18328459