lua 语法的使用总结

1、字符串连接
local tmp = "abc"
local tmp1 = "ddd"
tmp..tmp1


2、 table 类型 就是关联数组
local table = {}
table["abc"] = ""

初始化
local table = {0x7E, 0x01, 0x05}
local table1 = {key1=fun, key2=fun2}

遍历table表
for key,value in paris(table) do
print(key, value)
end


3、 打印内容
print("print value:", a, b)

4、 进行串口的十六进制的发送跟接收时,需要进行相关的设置
1、发送时用%c进行转换为ascii码表对应的字符 string.format("%c", buff[i])
2、解析字符串里含有的十六进制数,要用string.byte(result, pos)

当发送为字符串

5、普通数组
array = {} 初始化

6、 while ()
do
i++
end
lua语法不支持在while循环里进行 while(nLen = nLen--)


7、 lua 不支持自增、自减


8、lua 中的 ^ 为幂的乘方,在C为为异或操作, C的幂的乘方为pow(10, 2)的做法


9、 lua 位运算库
local bit32 = require("bit")
bit32.band(0x123, 0xff) 与操作
bit32.lshift(x, n) 左移
bit32.rshift(x, n) 右移
异或

10、
for var=exp1,exp2,exp3 do
<执行体>
end
var从exp1变化到exp2,每次变化以exp3为步长递增var,并执行一次"执行体"。exp3是可选的,如果不指定,默认为1。


11、逻辑运算符
and or not


12、 异或..就是不带进位的加法..
1+1=10,舍掉进位为0
1+0=1
0+1=1
0+0=0

13、require 与 loadfile、dofile的异同

       require 的文件只能寻找package.path里的文件, 无法指定路径

      loadfile 只加载一次(只需要编译一次),可多次运行,, 而dofile需要每次调用前都要重新编译。

      loadfile与dofile都可以指定路径加载脚本

      

参考链接:  https://www.cnblogs.com/heyongqi/p/5167088.html

原文地址:https://www.cnblogs.com/hzijone/p/7156795.html