Lua快速入门总结
2016-03-09 11:32
288 查看
Lua语言15分钟快速入门
1u = [[两个方括号
用于
多行的字符串.]]
2
t = nil – 未定义的t
3
通过do/end等关键字标识出程序块
while num < 50 do num = num -1 ; end;
3
~= 表示不等于
== 可用于字符串比较
4
默认全局变量
定义全局变量通过
local关键字
5
.. 用于连接字符串
6未定义的变量返回nil
foo = anUnknowVariable – foo值等于nil
只有nil和false被判为false,0和”“被判为true
7
or和and是可短路的.
a?b:c的操作:
ans = aBoolValue and “yes” or “no”
8
使用”100,1,-1”表示递减的范围(begin,end,step)
for j = 100,1,-1 do fredSum = fredSum + j end
9
repeat
print(“the way of the future”)
num = num -1
until num == 0
10
定义函数
function fib(n) if n < 2 then return 1 end return fib(n - 1) + fib(n - 1) end
11
支持闭包及匿名函数
function adder(x) return function(y) return x + y end
12
返回值,函数调用,复制都可以使用长度不匹配的list
不匹配的接收方会被赋值为nil
不匹配的发送方会被忽略
x,y,z = 1,2,3,4 –> x=1,y=2,z=3,4被丢弃
13
function bar(a,b,c)
print(a,b,c)
return 4,8,15,16,23,42
end
x,y = bar(“zaphod”) –> prints”zaphod nil nil”,x=4,y=8,后续被丢弃
14
函数可以是局部的或者全局的
function f(x) return x * x end
等价于
f = function(x) return x * x end
local function g(x) return math.sin(x) end
等价于
local g; g = function(x) return math.sin(x) end
15
三角函数以弧度作为单位
一个字符串作为参数时,可以不用括号
print “hello”
16
table是Lua唯一的数据结构
是关联数组,通过哈希表查找
key默认是String类型
t = {key1 = "value1",key2 = "value"} print(t.key1)
打印value1
t.key2 = nil
删除key2
17
可以使用任意非nil值作为key
字符串和数字是可用性较好的key
18
只需要一个table做参数的调用不需要使用括号
function h(x) print(x.key1) end
h{key1 = “Sonmi~452”} –> 打印Sonmi~452
19
遍历table
for key,val inparis(u) do print(key,val) end
20
_G是特殊的table,用于保存所有的全局变量
print(_G[“-G”] == _G) –> 打印”true”
21
table按照list/array的方式使用
List的迭代方式会隐含添加int的key
v = {“value1”,”value2”,1.21,”gigawatts”}
for i=1,#v do print(v[i]) end
“#v(table名)是list的长度”
list的索引从1开始(sad脸
list并非真正的类型,还是一个table(通过连续的整数key实现)
22
元表和元方法
table允许重定义table的一些操作
代码太多懒得贴…自己去找吧(傲娇脸
23
类风格的table和继承
代码更多了…自己找去吧(哼
24
模块
local mod = require(“mod”) – 运行mod.lua
等价于
local mod = (function() <contents of mod.lua> end)()
require用于包含包含模块(针对没有被缓存的情况)
require返回的值会被缓存,所以不管require多少次,文件只会被调用一次
25
dofile和require类似,只是不做缓存,因此每次dofile文件都会被调用
26
loadfile加载一个lua文件,但并不运行.
loadstring是loadfile的字符串版本
相关文章推荐
- Self Summary: Lua Language(two useful links) and the difference between : and .
- Self Summary: Lua Language(two useful links) and the difference between : and .
- Self Summary: Lua Language(two useful links) and the difference between : and .
- Self Summary: Lua Language(two useful links) and the difference between : and .
- Self Summary: Lua Language(two useful links) and the difference between : and .
- Self Summary: Lua Language(two useful links) and the difference between : and .
- 用python把AuroraGT的结果导成lua
- 集训队专题(8)1008 The Evaluation of Determinant
- Lua 服务器Socket通信实例(转)
- Lua 服务器与客户端实例(转)
- 基于lua的网页脚本开发语言cgilua(转)
- c++使用Lua
- Lua的time相关函数
- lua 写逻辑打印log时,打印到一半后停止不再打印,程序停止
- Lua中 assert、pcall 的错误处理
- lua 中的assert 与loadstring 问题
- 我为什么要再给lua写一个json模块
- java: org.luaj.vm2.LuaError:XXX module not found lua脚本初始化出错(转)
- lua-TestMore(转)
- luaoc.callStaticMethod实现OC和lua的相互调用