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