首页 > 代码库 > 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");
--]]
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
注: 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
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 总是返回一个字符串
注: 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。