lua
qq_28710983
这个作者很懒,什么都没留下…
展开
-
lua环境配置、使用 、基本数据类型
1、百度搜索LuaDist下载 官网 http://luadist.org/2、解压后放到你想放到的位置,设置环境变量 存放目录\LuaDist\bin 3、lua main.lua 标准lua使用规范 使用范例: lua main.lua4、luac 可以将lua文件编译成lua字节码 使用范例: l...原创 2018-06-09 15:47:08 · 1143 阅读 · 0 评论 -
csdn学习笔记:lua继承、自索引
Lua中类是对象,对象也是对象对象:所谓的对象,即属性和方法。相C/C++一样使用类来访问属性和方法Shape = { _width = 100, _height = 200, };-- Shape._getArea = function(self)-- return self._width * self._height;-- end...原创 2018-10-07 00:49:04 · 296 阅读 · 0 评论 -
csdn学习笔记:lua调用c/c++
无论何时lua调用c,被调用的函数都得到一个新的栈,这个栈独立于c函数本身的栈,也独立于之前的lua栈。它里面包含了lua传递给c函数的所有参数,而c函数则把要返回的结果放入这个栈以返回个调用者setglobalvoid lua_setglobal (lua_State *L, const char *name);将虚拟栈中,将栈顶元素弹出,作为全局 lua 变量 name 的值。...原创 2018-10-05 18:15:28 · 215 阅读 · 0 评论 -
csdn学习笔记:lua扩展c程序 c/c++访问lua变量和函数
aa.luateacher = "guilinwang";org = "nzhsoft";object = "lua";age = 28;tab = { teacher = "guilinwang_tab", org = "nzhsoft_tab", object = "lua_tab", age = 38, func_tab转载 2018-10-05 17:40:09 · 404 阅读 · 0 评论 -
csdn学习笔记:lua于c/c++交互
lua使用一个虚拟栈来和c互传值。栈上的每一个元素都是一个lua值所有对栈的api查询操作都不严格遵循栈的操作规则。而是可以用一个索引来指向栈上的任何元素;正的索引指的栈上的绝对位置(从1开始);负的索引则指从栈顶开始的偏移量。展开来说,如果堆栈有n个元素,那么索引1表示第一个元素(也就是最先被压栈的元素)而索引n则是指最后一个元素;索引-1也是指向最后一个元素(即栈顶的元素),索引-n是...原创 2018-10-05 17:25:20 · 840 阅读 · 0 评论 -
Lua的rawset和rawget浅析
定义raw:原始的,未加工的。 rawset/rawget:对“原始的”表进行直接的赋值/取值操作。 所以,raw方法就是忽略table对应的metatable,绕过metatable的行为约束,强制对原始表进行一次原始的操作,也就是一次不考虑元表的简单更新。另外,一次原始的操作其实并不会加速代码执行的...转载 2018-10-05 15:05:14 · 1343 阅读 · 0 评论 -
csdn学习笔记三:meta元表、元方法 __index, __newindex、rawset、rawget
重要:在表和元表的__index 和 __newindex 都没有需要操作的key时,赋值table操作会调用__newindex, 取值操作会调用__index 元表设置setmetatablet1 = {};t2 = {};print("t1=",t1);print("t2=",t2);print(setmetatable(t1,t2)); ----t2是元表 t1...原创 2018-10-05 15:03:52 · 320 阅读 · 0 评论 -
csdn学习笔记二:链表原型、do原型分析
设计链表,并设计其迭代函数生成链表、打印链表arr = {10, 20, 30, 100, 101, 88, 50};head = nil;local i = 1while true do if arr[i] then head = {value = arr[i], next = head}; ---从右往左执行的 --[[ ...原创 2018-10-05 14:22:56 · 217 阅读 · 0 评论 -
csdn学习笔记一:lua 迭代器
无状态的迭代器(不使用闭包方式),ipairs函数a = {10,20,30,40,50,60}for k,v in ipairs(a) do print(k,v);end-----------------------------output:1 102 203 304 405 506 ...原创 2018-10-05 14:11:49 · 246 阅读 · 0 评论 -
lua protobuf语法
protobuf语法1: 目前最新的proto3协议, 很多也用proto2 syntax = "proto2"; syntax = "proto3"; 2: 注释: 和C/C++一样 双斜杠 //3: message定义一个消息类型: message name { // 字段规则 字段类型 字段名字 字段标识号 required str...原创 2018-06-10 00:03:40 · 4220 阅读 · 0 评论 -
lua self 点 冒号 元表 面向对象 继承
点 冒号 self1: 代码如下: a = {}; function a.test() end2: 冒号解决这个问题 a = {} function a:test() :多了self这个机制 end a:test() 把a这个实例作为self传递给test函数,在test函数里面访问self就能获得这个a;3:显示传递self元表1: 每一个表,可以为这...原创 2018-06-09 21:38:44 · 448 阅读 · 0 评论 -
lua 多返回值 require 模块
1: 一个lua函数可以返回多个返回值:2: 定义多个变量来接受多返回值3: lua的unpack函数,解开表里的单个的值;-- 一个函数可以有多个返回值function mul_return_func() return 3 , "Hello World" --多返回值endlocal first, second = mul_return_func() --多返回值接收print(fir...原创 2018-06-09 21:29:02 · 3455 阅读 · 0 评论 -
lua字符串与表的使用
1:字符串加法: (1)“str1” .. “str2” (2)字符串与数相加;2: 数字转字符串: local a = 10; a = “” .. a; tostring(number) 字符串转数字: tonumber(“字符串”)3: 字符串接口: string.len(): 字符串的字节数 string.r...原创 2018-06-09 16:50:01 · 1188 阅读 · 0 评论 -
lua 基本表达式 顺序 条件 循环
1: =, +, -, *, /, 赋值,加减剩除;2: () 改变运算的优先级;3: 字符串对象加法 ..; “Hello”..”world” --lua是用 .. 两个逗号来相加两个字符串 5: lua 没有 c/c++的缩写表达式 += -= *=, ++, --;6: 逻辑运算:and 逻辑与, or 逻辑或local temptemp = 3 -- 赋值temp = "...原创 2018-06-09 15:50:17 · 664 阅读 · 0 评论 -
lua协程(coroutine)使用
function foo(a,b) print("co before yield",a,b); ----output:co before yield 100 200 ----print(coroutine.status(co)); ----running ----return a + b, a - b; ----01 ----corou...原创 2018-11-14 12:43:26 · 591 阅读 · 0 评论