cocos2dx_lua lua的简单入门回顾

lua  我用来做脚本的语言 简单优雅


有错,请给与指导,谢谢


1.chunk  运行语句块 一般指一个文件 或 交互模式下的一条语句

2.全局变量  给一个新的标识符赋值便创建了一个全局变量


3.保留字:

cocos2dx_lua lua的简单入门回顾_第1张图片


4.注释 : 单行 --  多行 --[[   --]]

5.类型: :nil、boolean、number、string、userdata、function、thread和table,  type检测类型 print(type(10.4*3)) --> number

6.字符串: ‘sadf’ , "dsfds ",[[asdfsadf]]

7.算术运算符: 二元运算符:+ - * / ^ (加减乘除幂)   一元运算符:- (负值)    这些运算符的操作数都是实数

8.关系运算符 :< ,>  ,<= , >= , ==  ,~=  "2" < "15" -- false (alphabetical order!)

9.逻辑运算符:and or not and和or的运算结果不是true和false,而是和它的两个操作数相关 a ? b : c  -》  (a and b) or c ,not的结果一直返回false或者true

10.优先级: x^y^z <--> x^(y^z)
cocos2dx_lua lua的简单入门回顾_第2张图片

11.表 一个神奇的东西 初始化:

  list风格:a = {x=0, y=0} 给健值对 访问 a.x

  record风格:days = {"Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday"} 给一个值 访问 a.[1]("Sunday")

12赋值语句:x, y = y, x 交换x,y 允许多值赋值 特别是调用c++函数时,其返回值可能修改为多值 如position,赋值遵从多删少补原则

13逻辑语句块 block 比chunk小型 一般指do。。。end 函数范围内等

14局部变量 local 如在一个文件 函数中 快,避免名字冲突

15控制语句

条件:

if conditions then
 then-part
else
 else-part
end;

循环:

while condition do
  statements;
end;

for var=exp1,exp2,exp3 do
 loop-part
end

泛型 for:for i,v in ipairs(a) do print(v) end    for k in pairs(t) do print(k) end


16break语句用来退出当前循环(for,repeat,while)。在循环外部不可以使用。 

  return用来从函数返回结果,当一个函数自然结束结尾会有一个默认的return。

  两者只能在逻辑结尾,也就是一条逻辑路径的结尾,没有其他代码,如end,else之前 调试do return end    -- OK

17 函数

function func_name (arguments-list)
  statements-list;
end;
调用函数 ()有时是可选的 可以返回多个值,若不是最后一个参数,则只返回一个

... 多余的参数放在arg里面 arg有个长度成员n ,unpack的实用

18排序

table.sort(network, function (a,b)
return (a.name > b.name)
end)


19闭包 内部函数访问调用他的函数的局部变量,当外部函数返回时,这个局部变量成了内部函数的状态量,upvalue,且这个状态量可以在一开始不同,也可以随这个内部函数的调用次数发生改变,由于函数是第一类值,因此就有了不同的upvalue-函数对 一对为一个闭包


20表函数

Lib = {}
function Lib.foo (x,y)
  return x + y
end

 个人爱好,比较能接受的写法

  局部函数

local fact
fact = function (n)
if n == 0 then
  return 1
else
  return n*fact(n-1)
end
end

  尾调用

  在逻辑路径结束点上调用函数,可不保存当前函数,chunk,block的现场,不会有像c++多层调用带来的栈空间耗损巨大的问题


21 loadfile:加载编译文件,返回函数或错误信息,可多次执行此函数或根据错误信息做判断

   dofile:加载编译执行文件

   loadstring:跟loadfile差不多,加载的对象时字符串,环境是全局

   require:dofile的改良版,有表记录是否加载过,且路径匹配有独特的方式


22  assert:执行第一个参数 正常则正常返回 错误则抛出第二个参数

       pcall:执行第一个参数,无捕捉到抛出的错误,则返回true和被执行的参数的返回,否则返回false和错误信息

      xpcall:多了第二个参数,第二个参数为错误处理回调函数,第一个参数抛出的错误会先给第二个参数执行,然后接收回调函数的返回












你可能感兴趣的:(cocos2dx_lua lua的简单入门回顾)