这里介绍一些关于Lua的比较特有的东西,在日常工作或者面试的时候可能会用到,对Lua不熟悉的可以先参考Programming in Lua这本书或者Lua 入门教程。
Lua的Tabletable 是 Lua 的一种数据结构,也称为表,可以用来表示诸如数组,字典,结构体,类,命名空间等,开发者需要根据实际情况去判断这个表当前表示什么。表里面可以存放键值对,可以存放方法,也可以存放其他表,一般情况下,访问一个表里面不存在的键时会返回nil,nil与null同意。
-- 初始化空表
mytable = {
}
-- 指定键为1对应的值为"Lua"
mytable[1]= "Lua"
-- 初始化表 键为1对应的值为"Hello" 键为2对应的值为"World"
mytable2 = {
"Hello", "World"}
-- mytable 和mytable2都指向同一个表
-- 更改mytable2指向的表等于更改到mytable指向的表
mytable = mytable2
-- 移除表
mytable = nil
-- lua 垃圾回收没有被引用的表来释放内存
表的常用方法 table.concat :将表里面的每个值连成字符串,有三个函数重载
fruits = {
"banana","orange","apple"}
-- 连接后的字符串 bananaorangeapple
print("连接后的字符串 ",table.concat(fruits))
-- 指定连接字符
-- 连接后的字符串 banana, orange, apple
print("连接后的字符串 ",table.concat(fruits,", "))
-- 指定只有连接索引
-- 连接后的字符串 orange, apple
print("连接后的字符串 ",table.concat(fruits,", ", 2,3))
table.insert:将某个值插入到表里面 table.remove 移除表里面某个元素
fruits = {
"banana","orange","apple"}
-- 在末尾插入
table.insert(fruits,"mango")
-- 索引为 4 的元素为 mango
print("索引为 4 的元素为 ",fruits[4])
-- 在索引为 2 的键处插入
table.insert(fruits,2,"grapes")
-- 索引为 2 的元素为 grapes
print("索引为 2 的元素为 ",fruits[2])
-- 最后一个元素为 mango
print("最后一个元素为 ",fruits[5])
table.remove(fruits)
-- 移除后最后一个元素为 nil
print("移除后最后一个元素为 ",fruits[5])
table.sort 将表里面的元素排序 table.sort (table [, comp]) 对一个长度为length=n的数组table排序,也就是对table[1]到table[n]排序,如果参数comp不省略,则它必须是一个函数,这个函数带有两个参数,接收表table的两个元素,在第一个元素排在第二个元素前面时返回true,其他情况返回false,如果省略参数comp,则Lua标准运算符
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?