从C/C++到Lua

来源:互联网 发布:大数据管理软件 编辑:程序博客网 时间:2024/05/22 08:01

因为工作需要,又要去使用Lua了。

以前就只是大概地使用了一下,并没有多深入。

现在要做的可能是上几千行的Lua代码,所以找了Lua的手册仔细看看。

做为一个C/C++程序员,把自己的学习过程中感觉不一样的东东写一下。

本文旨在为C/C++程序员提供一个快速了解Lua的方法。 如想更深入,还请看手册。

如有什么不当的地方,肯请指出,一起学习,谢谢。

如欲转载,请指明出处。http://blog.csdn.net/hanckjt

1. Lua中没有指针。

2. Lua中的变量并没有类型之分,你可以把它当作任何你使用的值类型,包括函数。

3. Lua中的“nil”和C/C++在的NULL差不多,都可以用来表示“空”,但是请注意,只是意义差不多,不是一样。因为其实NULL在C/C++中定义的是“0”,但是“0”在Lua并不是“空”。

4. 如果想交换a和b的值,可以这么写:a, b = b, a; (神奇的Lua)

5. 如果只是局部变量,请在前面加个“local”,不然就是全局了。

6. 强大的“..”,连接操作符,可以把任何能转成字符串的所有值连成字符串。比如:strMessage = "Name="..strName.."/nAge="..iAge;

 7. Lua有自己的垃圾回收系统。

8. 你可以把Lua中的表想像成为C++STL中的map,比如a = { ["DOS"] = 1 },那么a["DOS"] == 1;

8. 如果想得到一个表中有多少元素,可以用table.getn( ... )。

9. 就算不知道有多少个,你也可以这样遍历表中的元素:a = { x = 1, y = 2 };for key, value in a do    print( string.format( "a(%s)=%s/n", key, value ) );end

10. 函数可以返回多个值:function fun()    return 1, 2;enda, b, c = fun();这样之后:a == 1, b == 2, c == nil。这其实和第4项有点类似。

 

原创粉丝点击