找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1737|回复: 0

[教程源码] [Lua插件开发]01. Lua中变量与数据类型的介绍

[复制链接]
  • 打卡等级:武林至尊

1087

主题

2143

回帖

4337

积分

院长

鲜花
9
猫粮
7517
QQ
发表于 2022-2-18 15:46:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本系列教程目的是让大家掌握Lua基本语法与按键精灵手机版的插件开发制作,丰富按键精灵生态环境,让按键精灵变得更加强大!
本教程中部分知识点参考《Lua程序设计》书籍,有兴趣可以自行购买→传送门
按键精灵手机版插件的开发标准草案请阅读帖子:https://zimaoxy.com/b/t-3297-1-1.html
紫猫学院也有提供Lua插件开发的VIP教学服务,有兴趣请咨询紫猫老师QQ345911220或微信zimaoxy



标识符(即变量名、函数名等名称)规范:
在Lua中,标识符是由字母、数字、下划线组成的字符串,注意不能以数字开头。

例如izimaotest007_abc等都是正确标识符。
007test中文a-b-c等都是错误标识符。

另外,在Lua语言中对大小写敏感,即变量abc与变量ABC是不一样的。

提问:请思考上面正确与错误的原因是什么?


注释语法格式:
单行注释是使用两个连续的横杠(--)表示,例如
-- 这是一条注释语句

多行注释采用两个连续横杆+中括号(--[[ --]])表示,例如
--[[
   这里是注释语句,不会被执行到。
--]]


扩充:在多行注释的两中括号中间还可以使用等号(=)避免注释语句中出现中括号干扰。


语句结构:
在Lua中,语句结构是很灵活的,你可以用换行表示每一句,也可以用分号表示每一句,甚至用空格来表示每一句,例如以下代码中都是完全相同效果的。
[Lua] 纯文本查看 复制代码
-- 例子1
a = 1
b = a * 2

-- 例子2
a = 1;
b = a * 2;

-- 例子3
a = 1; b = a * 2

-- 例子4, 可读性很差, 但也是正确的, 不影响执行效果
a = 1 b = a * 2



变量:
在Lua中变量可以直接使用,无需定义,这种变量成为全局变量,未经赋值的变量默认为nil,类似于按键精灵中的Null。
也可使用local关键字定义为局部变量,我们更加推荐使用这种方法来控制变量的作用域。
[Lua] 纯文本查看 复制代码
a = 1
a = "abc"
local b = true


当你在同一行连续定义赋值变量时,要注意Lua是按顺序赋值,例如
[Lua] 纯文本查看 复制代码
local a, b, c = 1, 2 --这段代码执行后, a的值是1, b的值是2, 按顺序左右对应赋值, c由于没有赋值, 所以c是nil
a, b = b, a -- 这句代码实现了变量a与变量b互换数据, 也就是a变成了2, b变成了1



数据类型:
Lua语言属于动态类型语言,所以无需定义变量的数据类型,程序会根据自身类型信息获取类型。

在lua中有8种基本数据类型:nil(空)、boolean(布尔)、number(数值)、string(字符串)、userdata(用户数据)、function(函数)、thread(线程)和table(表)。可以通过内置函数type来查看一个变量的数据类型.

nil对应按键精灵中Null,即没有数据,空数据,当一个变量未被赋值时,默认就是nil

boolean与按键精灵中类似,但是它的值是小写的truefalse,不要手贱改成大写。另外,除了falsenil代表为假的值,其他任何数据都表示真,包括0也是真。

number是指一切数值,包括整数,小数等。

string是指一切字符串内容,可以跟按键一样使用双引号("我是字符串内容")来表示,也可以使用单引号('我是字符串内容')来表示,跨行长文本还可以用两个中括号来表示
[[
这里有一段跨行文本
这整段内容也是字符串内容
]]


userdata是用于与其他编程语言交互时使用的数据类型,这里不做讨论。

function表示一个函数。

thread表示一个线程。

table与按键精灵中的表类型类似,只不过它更加强大,例如function函数都可以放入table中。

篇幅有限,在后续教程中,我们将进一步对Lua语言展开讲解。
楼主热帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-12-22 18:16

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表