china0396 发表于 2026-6-10 16:11:59

龙途传奇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]
查看完整版本: 龙途传奇lua基础语法