龙途传奇lua基础语法
Lua基础语法(详情可查看Lua程序设计.chm)
保留字(每个都有单独含义)and break do else elseif
end false for function if
in local nil not or
repeat return then true until
while
注释(注释后代码不会执行)单行注释:--
多行注释:--[[ --]]
如下:
--[[
print(10) -- no action (comment)
--]]
Nil(空值)Lua中特殊的类型,他只有一个值:nil;一个全局变量没有被赋值以前默认值为nil;给全局变量负nil可以删除该变量。
Booleans(布尔值)两个取值false和true。但要注意Lua中所有的值都可以作为条件。在控制结构的条件中除了false和nil为假,其他值都为真。所以Lua认为0和空串都是真。
Numbers(数值)表示实数,Lua中没有整数。一般有个错误的看法CPU运算浮点数比整数慢。事实不是如此,用实数代替整数不会有什么误差(除非数字大于100,000,000,000,000)。Lua的numbers可以处理任何长整数不用担心误差。你也可以在编译Lua的时候使用长整型或者单精度浮点型代替numbers,在一些平台硬件不支持浮点数的情况下这个特性是非常有用的,具体的情况请参考Lua发布版所附的详细说明。和其他语言类似,数字常量的小数部分和指数部分都是可选的,数字常量的例子:
4 0.4 4.57e-3 0.3e12 5e+20
Strings(字符串)指字符的序列。lua是8位字节,所以字符串可以包含任何数值字符,包括嵌入的0。这意味着你可以存储任意的二进制数据在一个字符串里。Lua中字符串是不可以修改的,你可以创建一个新的变量存放你要的字符串如下:
a = "one string"
print(a) --> one string
Functions(函数)函数是第一类值(和其他变量相同),意味着函数可以存储在变量中,可以作为函数的参数,也可以作为函数的返回值。如下:
function 函数名(human)
return 1 --返回一个数值:1
end
算术运算符二元运算符:+ - * / ^(加减乘除幂)
一元运算符:-(负值)
这些运算符的操作数都是实数。
关系运算符< > <= >= == ~=
这些操作符返回结果为false或者true;==和~=比较两个值,如果两个值类型不同,Lua认为两者不同;nil只和自己相等。Lua通过引用比较tables、userdata、functions。也就是说当且仅当两者表示同一个对象时相等。
a = {}; a.x = 1; a.y = 0
b = {}; b.x = 1; b.y = 0
c = a
a==c but a~=b
逻辑运算符and or not
逻辑运算符认为false和nil是假(false),其他为真,0也是true.
and和or的运算结果不是true和false,而是和它的两个操作数相关。
a and b -- 如果a为false,则返回a,否则返回b
a orb -- 如果a为true,则返回a,否则返回b
例如:
print(4 and 5) --> 5
print(nil and 13) --> nil
print(false and 13) --> false
print(4 or 5) --> 4
print(false or 5) --> 5
连接运算符.. --两个点
字符串连接,如果操作数为数字,Lua将数字转成字符串。
print("Hello " .. "World") --> Hello World
print(0 .. 1) --> 01
优先级从高到低的顺序:
^
not - (unary)
* /
+ -
..
< > <= >= ~= ==
and
or
表的构造构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:
days = {"Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"}
print(days) --> Wednesday
赋值语句赋值是改变一个变量的值和改变表域的最基本的方法。a = "hello" .. "world"
t.n = t.n + 1
局部变量与代码块使用local创建一个局部变量,与全局变量不同,局部变量只在被声明的那个代码块内有效。代码块:指一个控制结构内,一个函数体,或者一个chunk(变量被声明的那个文件或者文本串)。
x = 10
local i = 1 -- local to the chunk
while i<=x do
local x = i*2 -- local to the while body
print(x) --> 2, 4, 6, 8, ...
i = i + 1
end
控制结构语句(if语句)控制结构的条件表达式结果可以是任何值,Lua认为false和nil为假,其他值为真。
if conditions then
then-part
end;
if conditions then
then-part
else
else-part
end;
break和return语句break语句用来退出当前循环(for、repeat、while)。在循环外部不可以使用。
return用来从函数返回结果,当一个函数自然结束时,结尾会有一个默认的return。
Lua语法要求break和return只能出现在block的结尾一句。例如:
local i = 1
while a do
if a == v then break end
i = i + 1
end
函数定义函数有两种用途:1.完成指定的任务,这种情况下函数作为调用语句使用;2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。
语法:
function func_name (arguments-list)
statements-list;
end;
函数调用调用函数的时候,如果参数列表为空,必须使用()表明是函数调用。print(8*9, 9/8)
a = math.sin(3) + math.cos(10)
print(os.date())
页:
[1]