Programming in lua 杂记(转)】的更多相关文章

1,loadstring 编译的时候不关心词法范围:   local i = 0   f = loadstring("i = i + 1") g = function () i = i + 1 end 这个例子中, 和想象的一样g 使用局部变量i , 然而f 使用全局变量i : loadstring 总是在全局环境中编译他的串. i = f = loadstring("i = i + 1 print(i)") g = print(i) end print(f())…
     Lua的长处之一就是可以通过新类型和函数来扩展其功能.动态类型检查最大限度允许多态出现,并自动简化调用内存管理的接口,因为这样不需要关心谁来分配内存谁来释放内存,也不必担心数据溢出.高级函数和匿名函数均可以接受高级参数,使函数更为通用.      Lua使用者分为三大类:使用Lua嵌入到其他应用中的.独立使用Lua的.将Lua和C混合使用的.     .在控制结构的条件中除了 false和 nil为假,其他值都为真.所以Lua认为0和空串都是真.   Lua会自动在 string和 n…
开始学习Lua编程,首先从一些简单的语法开始. 一.编辑环境 下面推荐一个Lua编程的IDE,感觉是很强大的.ZeroBrane Studio,windows平台,mac平台都有.点击打开链接  官方下载地址 二.开始一些简单的编程(代码参考自http://blog.csdn.net/xiaominghimi/article/details/8770395的例子) 具体语法参考我的上一篇(转载)博客 -- 单行注释语句 --[[ 注释段落语句 ]] --引用其他lua文件,不需要加上(.lua)…
Lua 用一个名为environment 普通的表来保存所有的全局变量.(更精确的说,Lua在一系列的environment 中保存他的“global”变量,但是我们有时候可以忽略这种多样性)这种结果的优点之一是他简化了Lua 的内部实现,因为对于所有的全局变量没有必要非要有不同的数据结构.另一个(主要的)优点是我们可以像其他表一样操作这个保存全局变量的表.为了简化操作,Lua 将环境本身存储在一个全局变量_G 中,(_G._G 等于_G).例如,下面代码打印在当前环境中所有的全局变量的名字:f…
1,lua中的数据结构都是表来实现的.数组就是索引为数值的表. 2,矩阵就是二维数组,三角矩阵就是矩阵的一半. 3,稀疏矩阵问题: 4, 5, 6,…
1, 也就是说,lua虽然会把代码预编译成中间码,以提高运行速度.但其会在程序运行过程中需要编译器,所以其仍然是解释型语言.loadfile会加载一个文件并将其编译成中间码,并返回一个函数. 2, 3, f()函数的调用,相当于运行了已经被loadfile函数进行编译的foo.lua代码,也就定义了foo函数.所以后面才能调用foo("ok") 4, 5, 6, 7, 8, 9, 10,…
1, 2, 3, 4, 5,lua中,只有false和nil为假,0和空字符串为真. 6, 7,…
1,lua基本类型:nil,boolean,number,string,userdata,function,thread,table.可以用函数type获取变量的类型. 2,lua中的字符串可以用单引号括也可以用双引号括,可以很长,长到一本书的大小.也可以很短,短到一个字符.lua的变量都是动态类型,可以用来存储任意类型,比如a变量存储了number类型的值100.0,后来又被拿来存储字符串'hello world'.并且lua自动管理内存,不用程序员手动释放内存. 3,引号包含的字符串是可以使…
1,Lua可以嵌入其他应用程序(如CGILua或IUPLua). 2,lua代码的语句,分号是可以省略的.同一行可以有多条lua语句,最好用分号隔开(当然也可以不隔开) 3,外壳与lua解释器的区别. 外壳:像DOS命令行,linux的shell解释器等都是外壳.在外壳中,想要执行lua需要写的命令应该是lua开头. lua解释器:先在外壳执行lua进入到lua解释器,然后执行lua代码可以省略lua.如下图: 上面的红框中,lua实在外壳执行,第二个红框导致shell执行lua解释器.所以第三…
protoc-gen-lua 编译.安装.使用教程: https://blog.csdn.net/huutu/article/details/49672225 https://github.com/sean-lin/protoc-gen-lua https://github.com/protocolbuffers/protobuf/tree/master/python…