简述
Lua是一个很小的编程语言,很多人将其与Python高级语言进行比较。
Lua有以下的特点:
(1)纯C语言实现,源码小,可以很好地与C/C++融合。可自行编译,生成静态库。
(2)语法简单,灵活,易学。
我也同时学习了Python,相比之下,Lua精简,功能简单,可用的库少,但是语言的实现写得如此精简也很不错了!与C/C++程序结合就能显示它的强大能力,适用于要求可配置性很高的C/C++程序中,比如游戏。
如果想写纯脚本程序,那就选Python吧,它是强大,库多,喜欢单干。
好,我们学习Lua吧!
基础
数据类型
Lua的常用数据类型有:
(1)Nil (空) <==> C语言中的NULL
(2)number 所有数据,包含整数小数
(3)string 字串类型
(4)boolean 布尔类型 true, false
(5)function 函数类型
(6)table 表类型
其实,Lua中的数据类型远不止上面的这几个,比如file.
table在Lua中是最重要的数据类型,Lua的很多思想都是基于表来实现的,比如模块、对象。
boolean 除Nil与false为假以为,其它都为真。
string
\ 转义字符
\[
\]
\ddd 3个十进制的数据表示一个字符,高位填0
[[ ... ]] 表示多行字符串,其中字串无转义
a = [[ \t \n [[ ]]
print(a)
\t \n [[
当字符串被参于数值运算时,Lua会试图将字串转成数值
print("10"+ 1) --> 11
print("123"* "12")--> 1476
当数值参于字串运算时,Lua也会尝试将其转换成字符串
print(123 .. 12)-->12312
print(10 =="10") --> 永远都是false
-- 除非
print(10 == ("10"+ 0)) --> true
print("10"== (10 .. ""))--> true
总之:操作符决定了两边操作数的转换类型。
表达式
(1)算术运算符 + - * / ^ (加减乘除幂)
(2)关系运算符 < > <= >= == ~= (不等于)
nil只与自己相等,table, usedate, function, 只比对象不比内容的值,相当于C语言中的指针比较
(3)逻辑运算符 and or not
and, or 的运算结果不是true与false
(4)优先级
^ 与 .. 是右连接
表结构
days = {"sun","Mon", "Tue","Wed", "Thu","Fri", "Sat"}
print(days[0])--> nil
print(days[1])--> Sun
Polyline = { color