标识符以一个字母A到Z或a到z或下划线_开头加上0个或多个字母,下划线1,数字,最好不要使用下划线加大写字母,因为Lua的保留字也是这样的。lua不允许使用特殊字符如@,%,&来定义标识符。
Lua是一个区分大小写的编程语言,在Lua中Runde和runde是两个不同得标识符。
标识符以一个字母A到Z或a到z或下划线_开头加上0个或多个字母,下划线1,数字,最好不要使用下划线加大写字母,因为Lua的保留字也是这样的。lua不允许使用特殊字符如@,%,&来定义标识符。
Lua是一个区分大小写的编程语言,在Lua中Runde和runde是两个不同得标识符。
SciTE Lua的IDE
print("Hello world!")
print("eee")
不要分号结尾
--单行注释
--[[
多行注释
--]]
旧人旧梦旧时光
__index=function(tab,key)--tab即元表关联的普通表 key 看相应的qing'kuang
__index
当访问普通的表中不包含相应的健的时候 调用
__index后面的函数
旧人旧梦旧时光
元表设置时 当元表里存在 __metatable这个键值时 会设置shi'bai
元表是对普通表的扩展 一般不需要再修改l
type 返回的是字符串
print(type'收到')
b=10
默认全局变量
b=nil 删除
print()
旧人旧梦旧时光
lua 元表 Metatable
一个元表只能作为一个表的元表
tab={}--普通表
mytab={}--元表 扩展了普通表的行为
setmetatable(tab,mytab)--设置元表
会返回一个--tab
getmetatable(tab)--获取普通表对应的元表
旧人旧梦旧时光
包
旧人旧梦旧时光
lua 模块 相当于 命名空间 本质上是一个表
require "模块名"--引用模块
local 相当于声明了一个私有函数
旧人旧梦旧时光
table排序
table.sort(表名)--排序--从小到大
旧人旧梦旧时光
table.xxx
tab={"ewr","wrew","23e"}
table.concat(tab)--把表里所有数据拼接成一个完整的字符串
table.concat(tab,"..")以..作为分割
table.concat(tab,"..",2,4)从索引2到4以..为分隔连接字符串
tab[#bab+1]="rwe"
table.insert(tab,"wwerwt")--添加到tab表的末尾
table.insert(tab,2,"wwerwt")在索引为2的位置插入“sdfw”
table.remove(tab,2)移除索引为2的值后面的往前
旧人旧梦旧时光
表
table={ }
table[1]="wrew"
print(type(table))
tab["werw"]="wrwwev"
newtable=table
表可以当作引用类型使用
多个表指向同一个内存时 需要将全部的表都删除才能干掉这块儿内存
旧人旧梦旧时光
旧人旧梦旧时光
迭代器
array={"dsf","fsdw","werw"}
for k,v in pairs(array) do
print(k,v)
end
pairs迭代table 遍历所有的key 和value
ipairs 按照 索引从1开始 递增遍历 遇到nil值就停止 适合遍历数组
旧人旧梦旧时光
二维数组
先遍历外成 后遍历内层
旧人旧梦旧时光
lua中的数组
索引可以为负数
array={ }
for i=-2,2 do
array[i]=i*3
end
for i=-2,2 do
print(array[i]i)
end
旧人旧梦旧时光
字符串的格式化
string .char()--转换为字符
string.byte("ABCD",4)把第四个转换为数字
string.byte("abcd")把第一个转换为数字
string.len("rwewt")长度
string.rep("werwr",4)把这个字符串复制4次
正则表达式
旧人旧梦旧时光
string .gsub(str,"e","32")--把e替换成32
string.Find(str,"sfwewrw"start )--返回所查找到的位置的索引
string.reverse(str)--字符串反转
string.format()--格式化
string.format("加法运算: %d+%d=%d",num1,num2,(num1+num2))
%s 未知的字符串
火狐浏览器2倍播放