首页 > 代码库 > Lua chapter 1

Lua chapter 1

1. 调用其他的.lua文件   dofile("xx.lua");  

2. 避免用 "_VERSION"这类的标识符,Lua将这类标识符用作特殊用途,通常保留"_"作为”哑变量“

3. Lua的一些保留字:
   do in local nil until 等
   
4. 注释:-- 表示行注释   --[[ ... ]] 表示块注释
一般的块注释这样写:
--[[
print("for test");
--]]   
这样,想重新启动注释代码的话,可以这样做
---[[       -- 在代码块前面多加了 "-" 
print("for test");
--]]   


5. 删除一个值,只需将其赋值为 nil 即可


6. 在交互模式中,如要打印任何表达式的值时,可以使用等号开头,如:
a = 30
=a;

7. Lua有8中基础类型
   nil, boolean, number, string, userdata(自定义数据), function, thread(线程), table
   可使用type函数来获取其类型,如:
   print(type("Hello"));   -> string 
   print(type(10.1)));     -> number
   print(type(type(x)));   -> string

   type 总是返回一个字符串


8. boolean类型有两个可选项:false, true
   注: Lua仅将false和nil视为”假“,其他的都是”真“,数字零和空字符串也为真
   
9. Lua中的字符串是不可变的值,不能像C语言那样直接修改某个字符,修改的话,只能创建一个新的字符串。
   注: 字符串是自动内存管理的对象,无需担心字符串的分配与释放,在Lua中操作100K或1M的字符串是很常见的。
   
10. Lua 也可以使用转义字符,如 "\n", "\097" (a) 等

11. 可以使用一对匹配的双方括号来界定一个字符串,Lua不会解释其中的转义序列。
如: 
page = 
[[
<html>
<body>
<a href = http://www.mamicode.com/"http://www.lua.org">Lua
</body>
</html>
]]
print(page);    -> 将会原样打印出来

12. ".." 是字符串连接操作符,建议在使用的时候,前后都加上空格,不然如果是数字的话,Lua会理解为是一个小数点

13. 类型转换  tonumber, tostring, 如果转换失败,则返回 nil 

14. 在Lua5.1中,可以在字符串前面放置操作符"#"来获得该字符串的长度
a = "Hello";
print(#a);     -> 5

15. table 的创建通过 ”构造表达式“ 完成,最简单的构造表达式就是{}
如:
a = {};
k = "x"
a[k] = 10;
print(a["x"]); -> 10

16. 当一个程序没有对一个table的引用时,Lua的垃圾收集器会自动删除该table,并复用它的内存
如:
a = {}
b = a; -- b与a 引用了同一个table
a = nil;    -- 只有b 引用了 table
b = nil; -- 再也没有对该table的引用了,Lua会自动处理掉它

17. 可以使用函数table.maxn, 来返回一个table的最大索引数
如:
a = {};
a[1000]=1;
print(#a); -> 0
print(table.maxn(a));       -> 1000



Lua chapter 1