QuickLuaTour

来源:互联网 发布:java ftp demo 编辑:程序博客网 时间:2024/06/05 05:39

1. 注释

单行注释:以--开头

多行注释:第一行以--[[开始,最后一行以]]--结束

 

2. 类型

Lua中的变量是没有类型的,但是值是有类型的。因此定义一个变量时不需要指定变量的类型。通过type函数可以获得值的类型字符串。

Lua中值类型有下述几种:nil, booleans, numbers, strings, functions, userdata and threads

 

3. 变量名命名规则

A. 变量名有字符,数字和下划线组成;

B. 不能以数字开头(以数字开头就不能分辨一个纯数字到底是变量名还是数字);

C. 以下划线开头的变量名一般表示具有特殊意义的变量,如_VERSION表示Lua的版本;

D. Lua是大小写敏感的;

 

4. 字符串

A. 单行字符串可以用双引号括起来,若字符串中有双引号则需要用反斜杠转义;

B. 单行字符串也可以用单引号括起来,若字符串中有单引号则需要用反斜杠转义;

C. 多行字符串第一行需要用[[开始,最后一行需要用]]结束。

 

5. 赋值运算符

Lua中一个赋值运算符可以进行多个变量的赋值,如下所示:

var1, var2 = var3, var4

 

6. 连接运算符

连接运算符..可以用来连接两个字符串或者一个字符串和一个数字

 

7. 输出操作

A. print() 括号中是要输出的字符串或者变量;

B. print 输出的字符串或者变量;

C. io.write() 括号中是要输出的字符串或者变量;

D. print函数默认会输出一个换行操作符,而io.write则不会输出换行操作符。

 

8. table类型

table类型值用{}括起来即可

A. 简单的table类型直接在括号中放值即可;

B. 负责的table类型可以在创建后继续添加成员,使用.号来进行;

C. 获取table变量的某个成员可以用成员名或者使用字符串索引。

复杂用法如下所示:

address={} -- empty address

address.Street="Wyman Street"

address.StreetNumber=360

address.AptNumber="2a"

address.City="Watertown"

address.State="Vermont"

address.Country="USA"

 

print(address.StreetNumber, address["AptNumber"])

 

9. 判断语句

if condition then

statements

end

 

if condition then

Statements1

else

Statements2

end

 

if condition1 then

statements1

elseif condition2 then

statements2

else

statements3

end

 

10. 条件赋值语句

value = test and x or y

 

a=1

b=(a==1) and "one" or "not one"

print(b)

 

-- is equivalent to

a=1

if a==1 then

    b = "one"

else

    b = "not one"

end

print(b)

 

11. 循环语句

while condition do

statements

end

 

repeat

statements

until condition

 

for condition do 

statements

end

注意for语句的condition可以指定范围和跨度,默认跨度是1,且范围是闭区间;另外可以指定一个集合,使用in来进行表示,此时若在循环变量前加一变量则表示index

例如for a=1,4表示执行四次,a的值分别是1,2,3,4for a=1,6,3执行两次,a的值分别是1,4

for key,a  in pairs({“1”, “2,”, “3”, “4”})表示循环执行四次,a的值分别是字符串的1,2,3,4, key的值是数字的1,2,3,4

 

12. 函数

A. 无参数无返回值函数

function myFirstLuaFunction()

    print("My first lua function was called")

end

 

B. 具有一个返回值的函数

function mySecondLuaFunction()

    return "string from my second function"

end

 

C. 具有多个参数和多个返回值的函数

function myFirstLuaFunctionWithMultipleReturnValues(a,b,c)

    return a,b,c,"My first lua function with multiple return values", 1, true

end

函数调用:

a,b,c,d,e,f = myFirstLuaFunctionWithMultipleReturnValues(1,2,"three")

 

13. 变量作用域

Lua中默认所有的变量都是全局变量,不论该变量是否定义在函数等其他域中;如果想定义一个局部变量,则需要在变量名前面加上一个local关键字。

 

14. 更多资源请参考

 Lua Tutorials: http://lua-users.org/wiki/TutorialDirectory

 

 "Programming in Lua" Book: http://www.inf.puc-rio.br/~roberto/pil2/

 

 Lua 5.1 Reference Manual:

     Start/Programs/Lua/Documentation/Lua 5.1 Reference Manual

 

 Examples: Start/Programs/Lua/Examples

0 0
原创粉丝点击