
Lua
文章平均质量分 55
auspark
MacOS Objective-C、C、C++、Python、Lua、Shell
展开
-
Lua C API 遍历table
src:https://www.cnblogs.com/hangj/p/5192588.htmllua_getglobal(L, t);int index = lua_gettop(L);lua_pushnil(L);while (lua_next(L, index)) { /* 此时栈上 -1 处为 value, -2 处为 key */ lua_pop(L, 1);}lua_next函数针对 -2 处(参数指定)的 Table 进行遍历。弹出 -1 处(栈顶)的值...转载 2021-07-26 17:47:13 · 389 阅读 · 0 评论 -
Lua userdata详解
文章目录C API 纵览第一个示例程序堆栈压入元素查询元素其他堆栈操作C API 的错误处理应用程序中的错误处理类库中的错误处理扩展你的程序表操作调用 Lua 函数通用的Lua函数调用调用 C 函数C 函数C 函数库Lua调用C模块的步骤:撰写 C 函数的技巧数组操作字符串处理在 C 函数中保存状态The RegistryReferences注册表与引用总结:C函数环境:(尽量用C函数环境代替注册表)UpvaluesUser-Defined Types转载 2021-07-15 14:32:29 · 2416 阅读 · 0 评论 -
Lua与C API交互全面解析
昔拉天使:https://blog.youkuaiyun.com/qq_39885372/article/details/104431873原创 2021-07-08 14:29:33 · 136 阅读 · 0 评论 -
C++嵌入Lua脚本
Mac项目集成Lua新建一个控制台应用程序。 打开Xcode,New->Project->OSX->Command Line Tool,取名为Lesson01如下图所示: 下载Lua code, Lua-5.3.3 a>下载完成后, 解压 b> terminal中cd 到刚刚解压下得到的路径下, 如" cd ~/Downloads/lua-5.3.5...原创 2020-05-01 13:15:27 · 371 阅读 · 0 评论 -
Sublime配置Lua运行环境
Sublime Text3配置Lua运行环境前言要问现在哪个编译器最能扛得住潮流,要数Sublime Text3了,由于它的轻量,插件丰富,美观,造就了一大批粉丝(本菜鸡也是哦)在以前的工作中使用惯了Sublime Text3,由于转行做游戏开发了,涉及到lua脚本的开发,因此马上把Sublime Text3配置成lua运行环境。搭建步骤1.下载安装Sublime Text3...原创 2019-12-11 11:55:17 · 449 阅读 · 0 评论 -
Lua开源项目
Project CatalogFor a listing of projects by tags click here. You might also want to see the FAQ.aabelhas activerdf ...转载 2019-11-21 11:16:47 · 792 阅读 · 0 评论 -
Lua的字符串匹配与正则表达式
使用lua一段时间了,简单总结下string库中的几个与正则相关的函数。这些函数是find,match, gmatch和gsub。然后是lua中支持的正则。文中的例子在lua5.3的命令行中试验过。5.1版的需要在提示符前加一个=号或加return空格。string.find(s, pattern[, init[, plain]])在字符串s中匹配pattern,如果匹配成功返回第一个匹配...转载 2019-11-20 17:19:07 · 1552 阅读 · 0 评论 -
Lua PUB/SUB实现
使用luarocks安装这些库:lzmq, pl.lapp1、如不需要查看发送或接受消息的时间,可以使用lzmq.timer 将函数timeStamp()及其使用的地方删除即可2、为简化验证,也可不使用命令行工具pl.lapp,将lapp部分删除,并将address用固定地址替换掉publisher.lua--publisher.lualocal zmq = r...原创 2019-11-14 15:27:52 · 613 阅读 · 0 评论 -
Lua的路径操作--shell cmd实现
虽然LFS足够强大,但部分情况还是不能很好的适应,以下方法基本上都是以shell cmd的形式去执行,从而实现路径和文件操作的各种需要。其实LFS和这里的方法结合起来,才是最后的fileLib = { --作用:替换~为用户路径字符串 explainUser=function(path) local cmdstr = "echo "..path ...原创 2019-11-12 22:29:14 · 1504 阅读 · 0 评论 -
Lua中路径操作--lfs库(LuaFileSystem)说明
LuaFileSystem,简称lfs,是一个用于Lua进行文件访问的库,支持Lua5.1和Lua5.2,且跨平台。安装:luarocks install luafilesystem英文说明文档所有的路径中不识别类似于”~“的替代符函数及属性说明:lfs.attributes(filepath[,aname])返回一个包含filepath各种属性的表(如发生错误则返回n...原创 2019-11-12 22:09:56 · 5547 阅读 · 0 评论 -
Lua中的时间戳
实现的功能:获取Mac OS系统的毫秒数 获取秒数 秒数/毫秒数与日期格式的转换知识点:用Lua自带的函数os.time()获取秒数 Lua自带的函数只能获取到秒,要获取到毫秒,需使用lzmq.timer,或者是socket(两个都需要使用luarocks安装) os.clock返回一个程序使用CPU时间的一个近似值 os.date格式化日期:local zmq_timer...原创 2019-11-12 14:06:03 · 6719 阅读 · 0 评论 -
Lua读取/解析json文件
JSON文件是最最常用的配置文档,这个例子展示了如何读取其中的内容,实现的功能:使用dkjson模块,如系统没有,使用luarocks安装 路径中~的扩展,得到完整路径 读取json文件中的字符串 用dkjson将字符串decode为table 取任意一个key的value值 遍历整个table知识点:io.popen([prog,[mode]]的学习和使用,类似于os.e...原创 2019-11-12 10:35:58 · 9745 阅读 · 0 评论 -
Lua 的模块安装和部署工具 - LuaRocks
Lua 是一个短小精悍的脚本语言,很多功能官方都不内置支持,需要添加第三方模块库来支持。但是,这些第三方模块是由不同开发者制作,分散的放在不同地方,如果想要安装一个模块还要到处去找,况且下载完模块后,有时还需要手动编译,设置环境变量,把模块放到指定的 Lua 模块加载目录。反正,安装一个第三方 Lua 模块需要执行上述一连串操作,也是一个繁琐的过程。对于这些繁琐,LuaRocks可以简化以上...转载 2019-11-11 18:27:05 · 1104 阅读 · 0 评论 -
lua使用zeromq实现 rep/req
参考:http://zeromq.org/bindings:lua安装环境sudo apt-get install luasudo apt-get install luarockssudo luarocks install lzmqsudo luarocks install lua-llthreads21) 实现rep.lua--require "zhelpers"loc...转载 2019-11-11 17:43:00 · 212 阅读 · 0 评论 -
lua zmq及socket通信
ZMQ在线docs:http://api.zeromq.org/2-1-3:_start1,序言,zmq 作为一种通信比较好,快捷的方式,越来越多的开发者使用。这里提供一个简单的例子来叙述lua_zmq的通信方式:案例是在Mac电脑编写1,先说zmq中req和rep方式,rep 作为服务端,req作为请求端,req只有先收到req的请求后,才会发消息回复,同理,req只有发送请求...转载 2019-11-11 17:31:49 · 515 阅读 · 2 评论 -
MacOS源码安装LuaJIT
在自己的Mac上源码安装LuaJIT, 结果发现各种报错环境系统版本:macOS Mojave, 10.14.3XCode: Version 11.0源码编译1、下载源码从网站上直接下载http://luajit.org/download.htmlwget下载:wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz...原创 2019-11-01 14:44:41 · 1014 阅读 · 2 评论 -
Lua脚本中的function使用冒号和点,以及require后使用冒号和点
1、Lua脚本里方法之前的冒号和点:备注:a)、每个方法前面如果是冒号,则这个方法里面自带一个self属性,也就是这个LUA脚本自己类对象的selfb)、当为点时,自带的self属性则为nil调用者:local zwt = require "ZWTestLuaScript1"被调者:ZWTestLuaScript1脚本中的方法如下:方法1:function ZWT...原创 2019-10-31 11:45:22 · 879 阅读 · 0 评论 -
从零开始在 macOS 上配置 Lua 开发环境
脚本语言,你可能更需要的是 Lua不同的脚本语言有不同的特性,第一接触的脚本语言,可能会影响自己对整个脚本语言的理解和认知。我以前接触最多的脚本语言是 JavaScript。后果就是:我一度以为脚本语言都是必须和宿主语言运行在不同的进程;脚本本身的语法受环境的影响很大,很难做到统一;如果想统一写法,都需要在应用体积上做出非常大的妥协(嵌入一个通用的 JS 解释器,会使应用体积增大十几 M)。我...转载 2019-10-31 11:02:15 · 768 阅读 · 0 评论 -
luarocks安装以及lfs安装
一、先安装lua:brew install lua我本机的安装路径为:/usr/local/Cellar/lua/5.3.4_2二、安装luarocks下载luarocks的安装包:http://luarocks.github.io/luarocks/re...转载 2019-10-31 10:20:42 · 706 阅读 · 0 评论 -
Lua继承的实现
实现继承的原理:利用table中的元表来实现 __index__index元方法:用于查看表中元素或方法是否存在 如果不存在则返回nil 如果存在 则返回__idnex表中的结果--单一继承的实现 利用元表来实现继承Account = {name = "lili", balance = 10}function Account:widthdraw(value) self.balance...转载 2019-10-30 11:07:43 · 129 阅读 · 0 评论 -
脚本之家Lua教程
脚本之家Lua脚本专栏Lua教程一:简介、优势和应用场景介绍Lua教程二:基础知识、类型与值介绍Lua教程三:表达式和语句Lua教程四:函数详解Lua教程五:迭代器和泛型forLua教程六:编译执行与错误Lua教程七:数据结构详解Lua教程八:数据持久化Lua教程九:元表与元方法详解Lua教程十:全局变量和非全局的环境Lua教程十一:模块与包详解Lu...原创 2019-10-22 17:26:26 · 1076 阅读 · 0 评论 -
Lua遍历数组和table的方法
Lua中遍历数组和table的4种方法:使用for遍历、迭代器的方式遍历等方法,同时提供一个复杂table的的遍历方法已知有如下table:table_test= { "table_value_1", "table_value_2", "table_value_3", "table_value_4", "table_value...原创 2019-10-22 15:19:37 · 4896 阅读 · 0 评论 -
lua package.path的使用
lua package.path的使用需要用lua写一个工具,c++调用lua,然后这个lua要require其他lua脚本,在主lua里面设置package.path,但一直都失败,甚至lua都无法编译通过。project_path = cpp_getProjectPath()local path = project_path.."/?.lua;"package.path = ...转载 2019-10-21 19:00:32 · 2951 阅读 · 0 评论 -
Lua 常用函数
lua_getallocflua_Alloc lua_getallocf (lua_State *L, void **ud);返回给定状态机的内存分配器函数。如果 ud 不是 NULL ,Lua 把调用lua_newstate 时传入的那个指针放入*ud 。lua_getfenvvoid lua_getfenv (lua_State *L, int index);把索引处值的环境表压入...转载 2019-10-21 18:08:30 · 984 阅读 · 0 评论 -
使用LuaScriptCore来让Lua与iOS进行交互
可能有一些人对lua并不是太熟悉,它其实跟JavaScript、Ruby、Python等同为脚本语言。但是更加轻量,更加简洁,没有任何多余的功能。这也使得它可以根据自己的需要来进行定制。例如作为应用的配置文件,又或者是游戏的脚本引擎等等。由于它的轻量,因此它要写更多的代码来实现自己所需的功能,有时候还需要使用Lua提供的C Api来进行功能扩展,对于移动设备来说更是如此,例如:访问定位、照相机等...转载 2019-10-21 10:31:19 · 331 阅读 · 0 评论 -
Lua与ObjC的交互
1. 写在前面很多时候我们都需要借助一些脚本语言来为我们实现一些动态的配置,那么就会涉及到如何让脚本语言跟原生语言交互的问题。平时在网上看得比较多的是使用JS(JavaScript)与iOS原生代码ObjC交互的文章。因为JS的解析器是iOS内部提供的(可以使用UIWebView或者JavaScriptCore.framework实现),所以使用JS来交互会感觉比较方便。但是在这里,我想跟...转载 2019-10-18 22:07:07 · 239 阅读 · 2 评论 -
lua_pcall详解
用法lua_pcall(lua_State *L,int nargs,int nresults,int errfunc)nargs 参数个数 nresults 返回值个数 errFunc 错误处理函数,0表示无,表示错误处理函数在栈中的索引--test.luafunction test(x,y) return x + yendlua_loadfile(L,"test...转载 2019-10-18 17:16:37 · 10841 阅读 · 0 评论 -
lua与C交互函数
在lua中,lua堆栈就是一个struct,堆栈索引的方式是正数也可以是负数,区别是:正数索引1永远表示栈低,负数索引-1永远表示栈顶。 栈顶 4 ------------- -1 3 ------------- -2 2 ------------- -3 1 ------------- -4 栈底lua_ge...转载 2019-10-18 16:50:32 · 201 阅读 · 0 评论 -
Lua中单例的使用
--testlocal config = {}function config:new(o) o = o or {} setmetatable(o,{__index = self}) return oendfunction config:Instance() if self.instance == nil then self.instance = self:new...转载 2019-10-18 16:23:17 · 796 阅读 · 0 评论 -
Lua 八种数据类型以及基本语法
8种数据类型number 实数 ,可以是整数,浮点数string 字符串,一旦赋值不能被修改,可以通过方法string.gsub()来修改nil 全局变量没被赋值默认为nil,删除变量就赋值为 nilboolean(bool) false 和nil为假 ,其它都为真function 函数t...转载 2019-10-18 15:34:03 · 232 阅读 · 0 评论 -
OC直接调用Lua与LuaScriptCore对比
网上有大佬用OC封装了一下Lua,方便c语言不纯属的iOS开发者调用。他是这么说的:而且Lua的C Api相对来说不容易理解和掌握,需要投入一定的时间去学习和累积这方面的经验。而**[LuaScriptCore](https://github.com/vimfung/LuaScriptCore)**就是为了解决这些问题而诞生,他简化了扩展Lua的难度,让开发者可以通过自己熟悉的语言来扩展Lua,...转载 2019-10-18 14:41:48 · 305 阅读 · 0 评论 -
Mac 下使用Xcode 配置Lua 环境并使用1
1.安装luahttp://www.lua.org/download.htm 下载lua。以最新的5.3.2为例 使用命令行执行命令 tar zxf lua-5.3.2.tar.gz cd lua-5.3.2 make macosx test 2.取.a 与 .h 文件取出 /usr/local/lib/liblua.a 与 /usr/local/include 下的全部...转载 2019-10-18 10:49:36 · 387 阅读 · 0 评论 -
Mac 下使用Xcode 配置Lua 环境并使用
Lua 下载和安装下载链接:http://www.lua.org/安装:http://www.lua.org/manual/5.3/readme.html 在执行完make macosx 以后,我的电脑要执行一次 sudo make install 环境配置成功后,在终端中输入lua 就会输出lua对应的版本信息了。使用Xcode新建一个 C 的命令行项目配置项目属性 —>B...转载 2019-10-18 10:45:15 · 323 阅读 · 0 评论 -
oc与lua互调
下载和编译Lua解析器首先,跳转到Lua官网的下载页将源码下载下来。然后解压下载包可以得到如下图所示的目录结构:Lua源码目录结构对应的目录说明如下表:名称说明docLua相关的文档,包括了编译文档、接口文档等Makefile编译Lua使用,在这...转载 2019-10-17 00:02:09 · 733 阅读 · 2 评论 -
Lua tunumber函数
【1】应用tonumber函数1 local function test(telnum) 2 local isLen = string.len(telnum) > 0 and string.len(telnum) < 7 and string.len(telnum) ~= 4 3 local value = tonumber(string.sub(te...转载 2019-10-14 16:04:59 · 12156 阅读 · 0 评论