Lua快速入门总结

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的字符串版本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值