目录
节流计划旨在降低物联网产品的硬件成本,本专栏将在2021年持续更新。
节流计划不采用STM32/STC/PIC等传统MCU,而是充分挖掘AIR724UG芯片除4G通信外的其他功能,包含但不限于GPIO、TTS、LCD、OTA、FLASH、ADC,KEY,UART,I2C、SPI等。
版权所有,谢绝转载,侵权必究。承接相关物联网项目合作,邮箱:realiot@163.com。
参考书目
LUA语法介绍基于LUA程序设计(第4版),图书链接:https://item.jd.com/12384305.html。
语法介绍分3篇文章完成,摘取了本书中的适于初学者掌握且是LUA语法基础的章节。请注意,笔者写出的内容并不完全遵循书中的编写顺序。这3篇文章所涉及的LUA语法知识对于后续的代码编写是相当关键的,但仅仅依赖这3篇文章本身是远远不够的,建议读者阅读这3篇文章有了初步的认识后,通过LUA程序设计(第4版)这本书获得更加系统的LUA学习。
如果您实在不想购买这本图书,通过菜鸟学院,同样也可以达到学习的目的。链接:https://www.runoob.com/lua/lua-tutorial.html
基本规范
规范:标识符、大小写敏感、不加分号
Lua 标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上 0 个或多个字母,下划线,数字(0 到 9)。
最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。
Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符。
Lua 是一个区分大小写的编程语言。因此在 Lua 中 Runoob 与 runoob 是两个不同的标示符。
Lua语句的结尾不需要添加分号;
注释:单行注释、多行注释、多行注释的技巧
单行注释符号 -- ,仅对当前行有效
多行注释符号是一对[[配合使用的。
[[
]]
--我是一个单行注释
--[
我是一个多行注释
--]
--[[
多行注释有效
多行注释的技巧
在多行注释的前半部分符号前加一个-
可以使得多行注释无效
此技巧可以用于代码调试时的临时修改
--]]
---[[
多行注释无效
多行注释的技巧
在多行注释的前半部分符号前加一个-
可以使得多行注释无效
此技巧可以用于代码调试时的临时修改
--]]
数据类型
Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。具体如下图所示。
变量
全局变量
在默认情况下,变量总是认为是全局的。全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil。
局部变量
如果需要限定一个变量的有效范围仅限于当前文件,可以使用local关键词初始化变量。
在一个函数内部内初始化的变量,其作用域仅限于函数内部。
流程控制、循环及循环管理
条件判断
if 语句 | if 语句 由一个布尔表达式作为条件判断,其后紧跟其他语句组成。 |
if...else 语句 | if 语句 可以与 else 语句搭配使用, 在 if 条件表达式为 false 时执行 else 语句代码。 |
if 嵌套语句 | 你可以在if 或 else if中使用一个或多个 if 或 else if 语句 。 |
local para1=true
if (para1) then
printf("this is lua code");
end
local para2=2
if (para2==1) then
printf("this number is 1");
else
printf("this number is 2");
end
local para3=3
if (para3==1) then
printf("this number is 1");
else if(para3==2)
printf("this number is 2");
else
printf("this number is 3");
end
循环
while 循环 | 在条件为 true 时,让程序重复地执行某些语句。执行语句前会先检查条件是否为 true。 |
for 循环 | 重复执行指定语句,重复次数可在 for 语句中控制。 |
repeat...until | 重复执行循环,直到 指定的条件为真时为止 |
循环嵌套 | 可以在循环内嵌套一个或多个循环语句(while do ... end;for ... do ... end;repeat ... until;) |
循环管理
break 语句 | 退出当前循环或语句,并开始脚本执行紧接着的语句。 |
goto 语句 | 将程序的控制点转移到一个标签处,与C语言的goto语句类似。 |