[Lua快速了解一下]Lua的函数】的更多相关文章

-Lua的Hello World print("Hello World") 分号可选 -类似python,进入Lua后再shell中打命令执行语句也可 > print("Hello, World") Hello, World > -将脚本存成文件,用如下命令行运行 >lua file.lua -或者是像shell一样运行 chenhao-air:lua chenhao$ cat hello.lua #!/usr/local/bin/lua prin…
-recurrsive function fib(n) end ) + fib(n - ) end -closure 示例一 function newCounter() return function() -- anonymous function i = i + return i end end c1 = newCounter() print(c1()) --> 1 print(c1()) --> 2 示例二 function myPower(x) return function(y) re…
我们可以直接使用require(“model_name”)来载入别的lua文件,文件的后缀是.lua.载入的时候就直接执行那个文件了.比如: 我们有一个hello.lua的文件: print("Hello, World!") 注意:1)require函数,载入同样的lua文件时,只有第一次的时候会去执行,后面的相同的都不执行了.2)如果你要让每一次文件都会执行的话,你可以使用dofile(“hello”)函数3)如果你要玩载入后不执行,等你需要的时候执行时,你可以使用 loadfile…
__index(a, b) 对应表达式 a.b 上面我们看到有__index这个重载,这个东西主要是重载了find key的操作.这波操作可以让Lua变得有点面向对象的感觉,让其有点像Javascript的prototype. 所谓__index,说得明确一点,如果我们有两个对象a和b,我们想让b作为a的prototype只需要 setmetatable(a, {__index = b}) 例如下面的示例:你可以用一个Window_Prototype的模板加上__index的MetaMethod…
MetaTable和MetaMethod是Lua中的重要的语法,MetaTable主要是用来做一些类似于C++重载操作符式的功能. 两个分数 fraction_a = {numerator=, denominator=} fraction_b = {numerator=, denominator=} 我们想实现分数间的相加:2/3 + 4/7,我们如果要执行: fraction_a + fraction_b,会报错的. 所以,我们可以动用MetaTable,如下所示: fraction_op={…
Lua中的Table其实就是一个Key Value的structure haoel = {name=, handsome=True} -table的CRUD操作 haoel.website="https://coolshell.cn/" local age = haoel.age haoel.handsome = false haoel.name=nil 看上去像c++的struct,但是其实name, age, handsome, website都是key 还可以这样定义Table…
-Lua中没有++或者--的骚操作 -while loop sum = num = do sum = sum + num num = num + end print("sum =",sum) -if else and sex =="Male" then print("男人四十一枝花") and sex ~="Female" then print("old man without country!") the…
-注释 -- 两个减号是行注释 -块注释 --[[ 这是块注释 这是块注释 --]] -变量 Lua的数字只有double型,64bits, Lua的字符串string支持双引号或者单引号 以下例子会输出完全相同的四组结果 a = 'alo\n123"' a = "alo\n123\"" a = '\97lo\10\04923"' a = [[alo 123"]] -null c语言中的null在Lua中为nil -bool bool类型只有ni…
函数的定义:在Lua中,函数是一种对语句和表达式进行抽象的主要机制. 一.函数基本用法        在Lua中,      1.函数既可以完成某项特定的任务.(被视为一条语句)      2.也可以只做一些计算并返回结果.(被视为一句表达式) 格式:      function function_name( ... )     -- body     end      ---- 等同于       function_name=function( ... )  --body  end 声明:  …
Cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所有的文档都没讲清楚,是因为存在5个层面的知识点: 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质 2.在Cocos2d-x项目里,把纯C函数注册进Lua环境,理解Cocos2d-x是怎样创建Lua环境的.以及怎样得到这个环境并继续自定义它 3.了解为什么要使用toLua++来注册C++类 4.在纯C++环境下,使用toLua++来把一个C++类注册进Lua环境,理解toLua++的用法 5.在C…