- 浏览: 750341 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1044)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (64)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
最新评论
传引用
非全局函数
递归
由于全局变量一般会污染全局名字空间,同时也有性能损耗(即查询全局环境表的开销),因此我们应当尽量使用“局部函数”,其记法是类似的, 只是开头加上 local 修饰符
local function test(a) a.a1 = 3 end local a = {a1=1,a2=2} test(a) print(a.a1) 3
非全局函数
Lib = {} function Lib.foo (x,y) return x + y end function Lib.goo (x,y) return x - y end print(Lib.foo(1,2)) 3
递归
local fact fact = function (n) if n == 0 then return 1 else return n*fact(n-1) end end print(fact(4)) 24
由于全局变量一般会污染全局名字空间,同时也有性能损耗(即查询全局环境表的开销),因此我们应当尽量使用“局部函数”,其记法是类似的, 只是开头加上 local 修饰符
print("test fun1") local function fun1() return 1,2 end a,b = fun1() print(a,b) function fun2(t) for i in ipairs(t) do print(t[i]) end end f = string.find a = {"hello", "ll"} print("test fun2") print(fun2(a)) print("test function unpack") print(f(unpack(a))) function fun3(a,b,...) for i,v in ipairs(arg) do print(v) end end print("test function variable parameter") print(fun3(1,2,3,4,5,6,7)) test fun1 1 2 test fun2 hello ll test function unpack 3 4 test function variable parameter 3 4 5 6 7
--string.format str = string.format("A:%d%s",1,"a") print(str) a = {p=print} a.p("abc") print("def") --table sort function printTable(t) for e in pairs(t) do print(t[e].name..":"..t[e].age) end end people = {{name="zhangsan",age="26"}, {name="lisi",age="25"}, {name="wangwu",age="21"}} function f(p1,p2) return p1.age<p2.age end print("before sort:") printTable(people) table.sort(people,f) print("after sort:") printTable(people) function f1() local i = 0 return function()--anonymous function i = i+1 return i end end ff1 = f1() print(ff1()) print(ff1()) --Lua 编译时遇到 fact(n-1)并不知道他是局部函数 fact local fact --loop need fact = function (n) if n == 0 then return 1 else return n*fact(n-1) end end print(fact(4)) A:1a abc def before sort: zhangsan:26 lisi:25 wangwu:21 after sort: wangwu:21 lisi:25 zhangsan:26 1 2 24
发表评论
-
mac nginx启动
2021-01-15 10:10 345brew services start nginx 1.1 ... -
nginx与lvs的异同
2017-11-30 11:51 901http://blog.csdn.net/BuquTianya ... -
lua weak表与gc
2017-11-29 09:56 550local a = {} local b = {} s ... -
lua single-method
2017-11-29 09:49 508local function newObject (val ... -
lua ffi
2017-11-16 11:33 590testlib.c #include <stdio. ... -
lua unpack
2017-11-09 11:07 378unpack接受一个数组作为输入参数,返回数组的所有元素。被用 ... -
resty thread
2017-07-07 14:35 358local t = {} local functio ... -
resty 正则
2017-07-04 17:32 447local m, err = ngx.re.match(& ... -
Nginx Lua脚本执行顺序
2017-06-15 09:11 805[img] [/img] -
ngx timer
2017-05-20 08:11 451local delay=3 local handle ... -
openresty文件自适应
2017-05-18 14:14 471location ~ ^/([-_a-zA-Z0-9/]+ ... -
lua_shared_dict
2017-05-18 12:01 22531.定义一块名为my_cache的共享内存空间,内存大小为si ... -
lua 协程(coroutine)
2016-11-30 10:34 512local function f(a) local ... -
lua loadstring
2016-11-29 10:08 808loadstring 不会有边界效应产生,他仅仅编译 chun ... -
lua book
2016-05-05 10:26 443http://lua.ren/topic/157/lua书 -
lrucache
2016-04-19 16:21 598local _M = {} --local lruc ... -
openresty资料
2016-03-15 09:57 768视频 http://study.163.com/course/ ... -
openresty缓存
2016-03-09 15:12 1110shared dict:这个cache是nginx所有work ... -
cjson
2016-03-07 10:42 552local json = require("cj ... -
nginx使用lua文件
2016-03-02 10:13 673location /test_var { con ...
相关推荐
本教程将详细介绍如何在C++程序中调用Lua函数,实现文本的获取与显示策略。 首先,你需要安装Lua库,并将其头文件和库文件添加到你的C++项目中。对于Visual Studio 2008(vc2008)用户,可以通过NuGet或手动下载Lua...
在C或C++中调用Lua函数通常涉及到与Lua虚拟机的交互,这需要理解Lua的C API,包括进栈(pushing values onto the stack)和出栈(popping values from the stack)等操作。这些操作是繁琐且容易出错的,因此在实际...
同样,当Lua函数返回这些类型的数据时,LuaAction也能将其转换为C++可识别的格式。 特别地,对于TABLE类型,LuaAction还支持多层表的嵌套。这意味着你可以传递或接收包含其他表的表,这样的数据结构在处理复杂数据...
本文将详细讲解如何在C++中调用Lua函数,并提供一个简单的源代码案例作为参考。 首先,我们需要了解C++与Lua交互的基础。Lua是一个轻量级的脚本语言,它的设计目标是易于嵌入到其他应用中,而C++则是一种通用的、...
总结起来,在 C++ 中调用 Lua 函数涉及到 Lua 环境的创建、脚本加载、函数查找、参数传递、函数调用及返回值处理等多个步骤。熟练掌握这些步骤,可以灵活地在 C++ 应用中集成 Lua 脚本,实现动态扩展和自定义功能。
在本文中,我们将深入探讨如何在C++程序中集成Lua,实现C++调用Lua函数以及Lua调用C++函数。 一、C++调用Lua函数 1. 配置环境:首先,你需要在C++项目中包含Lua库。确保已经下载并正确安装了Lua,并将其头文件和库...
### Lua函数脚本分析:Lua运行效率分析 #### 前言 在游戏开发与软件工程领域中,Lua 作为一种轻量级且高效的脚本语言,因其灵活性与易集成性而受到广泛欢迎。特别是在游戏引擎如 Cocos 中,Lua 的应用尤为普遍。...
通过这些文件,你可以学习到如何在易语言环境中使用Lua,包括导入库、调用Lua函数、执行Lua脚本以及如何处理返回的结果。这对于想在易语言项目中利用Lua的强大功能,比如实现动态配置、游戏逻辑或者复杂的算法,是...
### 常用Lua函数详解 #### 一、字符串填充函数 在Lua中,字符串处理是非常常见的需求之一。本文档提供了三个字符串填充函数:`StrFillC`、`StrFillL`、`StrFillR`,用于实现字符串的中心填充、左填充和右填充。 ##...
“lua注入”是指在游戏运行时,通过某种方式将自定义的Lua代码插入到游戏中,使得可以调用游戏已经注册的Lua函数或者执行特定的字符串。这种技术在游戏调试、插件开发、自动化测试等方面非常有用。例如,开发者或...
本文将介绍如何在C语言中调用Lua函数。 首先,需要了解的是,在Lua中定义的函数可以被C语言所调用,C语言程序需要使用Lua提供的API来实现这一功能。以下是C语言调用Lua函数的步骤: 1. 压入Lua函数到栈顶:在Lua中...
总的来说,通过本文的介绍,你应该能够理解如何在C++中使用Lua API调用有参数的Lua函数,并对Lua与C++的交互有了基本的认识。这使得C++程序能灵活地利用Lua脚本实现动态行为,同时也保留了C++的高性能特性。
Lua自定义代码段,包括函数注释,++,--,+=,-=,*=,if elseif else等等; 函数注释:给已有函数添加注释(add_commit_clipboard)快捷键:Ctrl+Alt+x 生成带注释的函数,能自动按照参数生成注释行(dfun.sublime-...
《lua函数.txt》文件可能包含了Lua标准库的常用函数,例如: - **math库**:提供了各种数学函数,如math.random()用于生成随机数,math.pow()用于求幂,math.sqrt()用于开平方根等。 - **string库**:处理字符串的...
### Lua编程示例(六):C语言调用Lua函数 #### 概述 在《Lua编程示例(六):C语言调用Lua函数》这篇文章中,作者通过一个具体的代码示例,展示了如何从C/C++环境中调用Lua脚本,并与Lua脚本进行交互。这种交互...
首先,C语言调用Lua函数的基本流程是:将Lua函数和参数压入栈中,然后通过C API(如lua_pcall)来执行Lua脚本中的函数。具体操作步骤包括: 1. 使用lua_pcall调用Lua函数。这一步是核心,在调用前需要确保Lua函数和...
在C语言中编写模块以与Lua脚本进行交互时,有时需要从C代码中回调Lua函数。本文将详细介绍两种在C模块中回调Lua函数的方法:C保存函数对象和C访问Lua全局环境。 1. C保存函数对象 这种方法的核心是利用Lua的注册表...
要从C/C++中调用Lua函数,我们需要创建一个Lua状态机(lua_State*),这是所有交互的基础。例如: ```c #include <lua.h> #include #include int main() { lua_State *L = luaL_newstate(); luaL_openlibs(L);...
C++调用Lua函数是将C++代码与Lua脚本集成的一种常见方法,这使得开发者可以利用Lua的灵活性和简洁性编写部分逻辑,同时利用C++的高性能和系统级功能。Lua是一种轻量级的脚本语言,常用于游戏开发、配置文件、扩展...