您的位置:首页 > 编程语言 > Lua

Lua快速入门总结

2016-03-09 11:32 288 查看

Lua语言15分钟快速入门

1

u = [[两个方括号

用于

多行的字符串.]]

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的字符串版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: