-摘自Lua 编程
Lua 学习
典型语句:
print("Hello World")
if n==0 then
print(n)
end
保留字:and break do end false for in local nil repeat return then while else elseif function if not or true until
单行注释: --
多行注释:—[[ --]]
命令行方式
lua [options] [script [args]]
-e: 直接将命令传入lua
-l : 加载一个文件
-i: 进入交互模式
_PROMPT 内置变量作为交互模式的提示符
环境变量LUA_INI,如果为@filename,则加载指定文件。如果变量存在,但不是以@开头,则假定filename为Lua代码文件并运行。
arg全局变量存放Lua的命令行参数,脚本名索引为0,前面的参数从-1开始减少。
Lua是动态类型语言。
8个基本类型:nil,boolean,number, string, userdata, function, thread, table. type()函数可以测试变量或值的类型。
给全局变量赋值nil,可以删除该变量。
控制结构中,false和nil为假,其它值为真。Lua认为0和空串都是真。
Numbers 表示实数,Lua中没有整数。
Strings 指字符的序列,你可以存储任意的二进制数据在一个字符串里。Lua中字符串是不可以修改的,你可以创建一个新的变量存放你要的字符串。
string 和其它对象一样,Lua自动进行内存分配和释放。Lua可以高效的处理长字符串。可以使用单引号或者双引号表示字符串。
转义符:\
\a bell
\b back space -- 后退
\f form feed -- 换页
\n newline -- 换行
\r carriage return -- 回车
\t horizontal tab -- 制表
\v vertical tab
\\ backslash -- "\"
\" double quote -- 双引号
\' single quote -- 单引号
\[ left square bracket -- 左中括号
\] right square bracket -- 右中括号
运行时,Lua会自动在string和numbers之间自动进行类型转换,当一个字符串使用算术操作符时,string就会被转成数字。
反过来,当Lua期望一个string而碰到数字时,会将数字转成string。
显式将string转成数字可以使用函数tonumber(),如果string不是正确的数字该函数将返回nil。
反之,可以调用tostring()将数字转成字符串
函数是第一类值(和其他变量相同),意味着函数可以存储在变量中,可以作为函数的参数,也可以作为函数的返回值。
Lua可以调用lua或者C实现的函数,Lua所有标准库都是用C实现的。标准库包括string库、table库、I/O库、OS库、算术库、debug库。
userdata可以将C数据存放在Lua变量中,userdata在Lua中除了赋值和相等比较外没有预定义的操作。userdata用来描述应用程序或者使用C实现的库创建的新类型。例如:用标准I/O库来描述文件。