马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本系列教程目的是让大家掌握Lua基本语法与按键精灵手机版的插件开发制作,丰富按键精灵生态环境,让按键精灵变得更加强大!
本教程中部分知识点参考《Lua程序设计》书籍,有兴趣可以自行购买→传送门←
按键精灵手机版插件的开发标准草案请阅读帖子:https://zimaoxy.com/b/t-3297-1-1.html
紫猫学院也有提供Lua插件开发的VIP教学服务,有兴趣请咨询紫猫老师QQ345911220或微信zimaoxy
调试代码
除了自己搭建Lua环境调试代码外,也可以直接用记事本或者vscode文本编辑器之类的软件,通过按键精灵手机助手直接调试插件,详见帖子https://zimaoxy.com/b/t-3297-1-1.html
数值:
数值型与按键精灵手机版中的类型一致,也是直接写变量名=数字,例如
[Lua] 纯文本查看 复制代码
local a = 10
local b = 20 * 2
local pi = 3.14
字符串:
字符串与按键精灵手机版中类型稍有不同,除了可以用双引号外(""),还可以单引号('')和长文本的中括号([[]]),例如
[Lua] 纯文本查看 复制代码
local a = "紫猫"
local b = '编程'
local c = "单引号与双引号没有区别,可能唯一区别就是双引号字符串里出现了单引号'是不需要转义处理的"
local d = '在单引号字符串中出现了双引号"也是不需要转义处理的'
local e = [[
这是一段换行内容
这里的数据都被保存到变量e中
包括这几个换行符
如果内容中也存在两个中括号之类的情况
那么可以给头尾中括号中间加一定数量的等号
例如都加一个等号即可解决这个冲突问题。
]]
字符串中的\表示转义符,例如\n是代表换行符,\"是代表一个双引号字符,\\代表一个斜杠字符,所以当你使用需要填写电脑路径时一定要注意转义!
布尔:
布尔与按键精灵手机版中类型稍有不同,在Lua中布尔值是两个小写的true和false,由于Lua是大小写敏感的,所以千万别手贱给首字母大写!其次要记住,在Lua中只有false与nil代表假,其他任何数据全部都是真,包括0与空字符串、空表等都是真。
表:
在Lua中表是最主要最强大的数据结构,它与按键精灵table类似,但是功能更加强大!详见下方代码例子
[Lua] 纯文本查看 复制代码
local t = {} -- 这是定义了一个空表,里面没有任何数据
t["键名"] = "键值" -- 这是按键精灵中的键值对写法,在Lua中也支持
t[1] = 345911220 -- 这是按键精灵中的表下标索引写法,在Lua中也支持
t.name = "紫猫" -- 这个是按键精灵不支持的写法,这行代码等同于下面一行
t["name"] = "紫猫" -- 这行代码与上一行相同,但是写法不同
t.add = function (a, b) return a + b end -- 这是按键精灵不支持的写法,实现将函数存入表中
函数:
function函数与按键类似,但是功能语法相差甚远,在Lua中函数定义语法格式有以下几种
[Lua] 纯文本查看 复制代码
f(123) --这一行代码的位置是错误的, Lua必须先执行定义函数, 然后才能调用
local function f(x) -- 定义了一个局部函数f
print(x) -- 实现了打印输出参数x功能
return x -- 结束函数并返回参数x
end
f(123) --在这里才能正常调用上面定义的函数f, 调用语法是返回值 = 函数名(参数)
local add = function (a, b) -- 将一个匿名函数赋值给局部变量add
return a + b -- 将参数a+b的结果作为返回值
end
result = add(10 + 20) -- 调用函数必须要写在定义函数下面
function函数支持多个返回值,语法格式如下
[Lua] 纯文本查看 复制代码
local function foo()
return "a", "b", "c"
end
local x, y, z
x, y, z = foo() -- 调用函数后, 将3个结果依次赋值给变量x,y,z
参数可以使用三个小数点(...)来表示可变长参数,也就是无论填写几个参数,例子如下:
[Lua] 纯文本查看 复制代码
local function add(...) --定义add函数, 参数填写数字, 无论几个参数都可, 功能是求所有参数之和
local sum = 0
for _, v in ipairs{...} do --这部分代码暂不做解释, 以后再说
sum = sum + v
end
return sum
end
add(1,2,3,4,5,6,7,8,9,10) -- 执行后函数返回值是55
|