Lua 是一个小巧的脚本语言。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。
1.基本语法
注解 ? ?-- ?单行 ? ? ? ?-- [[ ]] -- ?多行
2.标识符
标识符由字母、数字、下划线 组成,只能以下划线和字母开头,不要以下划线+大写字母组成标识符。
全局变量和局部变量
local 变量 ?局部变量 ? ? ?变量 ?全局变量
4.ipairs() 和 pairs() 函数的区别
ipairs() ? ? -- 正序循环数据 table pairs() ? -- 逆序循环数据 table
lua中只有false和nil为false,其余都为true
nil is false 0 is true
数据类型 number
lua中,只有一种数字类型- number 8字节、双精度
[[]] 可以包含换行的字符串
frank = [[ l love you i miss you l kiss you ]]
字符串与数字做数学运算时,优先将字符串转成数字
“1” + 1 = 2 “1” + “1” = 2 -- 这里正好和java相反啊 ‘x’ + 1 ? -- 这里字符穿不能转化成数字就会报错 如果实现java 中字符串连接,使用 .. 符号 作为连接字符 #‘aa’ ?-- 2 这里是计算字符串的长度
5.数据类型 -- table
table 可做数据和Map 数组下标从1开始。
6.数据类型---其他
1. thread : 协程 2. userdata : 存储c,c++数据类型
7.索性
tab = {g1="v1",g2="v2",g3="v3"} print(tab["g1"]) ? -- 直接将键引起来当索性 print(tab.g1) ? ? -- ?直接点 和java 中的用法一样
8.循环
while(循环条件) ? do ?-- 循环这里都是 do ? 执行体; ? 对循环条件的控制; ? end -------------------------------------------- ? ?for ? 数值for for var=expr1,expr2,expr3(var 从expr1到expr2,expr3 为步长,可为空,默认为1) ? do 循环体 end ?------------------------------------------------ ? repeat util -- 循环 ? repeat ? 循环体 ? until(条件) -- 这里和do while 是一样的 先执行 在判断 ? 先执行循环体,直到满足条件;
流程控制
if (成立) then -- 这里加一个 then 的关键字 ? 执行体1 ? else ? 执行体2 ? end
10.函数
范围:默认local ? 格式: ? function 函数名(参数列表) ? 函数体; ? return 返回值 -- 有返回值就写没有就算了 ? end ?
可以参数
可变参数:arg = {...}
函数参数列表中,存在固定参数和可变参数,固定参数全部写在前面
function 函数名(fmt,...) -- 固定参数写在前面
选取可变参数的值:select
a,b,c = select(3,...)
11.运算符
1.算术运算符 ? ? ? ? ?没有 ++ -- 其它的都一样啊 2. 逻辑运算符 与 : and ? 或 ?: or ? ?非 : not
模块
模块中的局部成员不能被外部访问