lua_writeline的简单介绍

http://www.itjxue.com  2023-01-06 01:18  来源:未知  点击次数: 

Lua_函数_可变参数

local function fun(x)

end

函数可以复制给变量

f = fun(x)

f(10)

函数可以返回多值,在return 后返回值,多值用逗号分隔

local function rfun()

return 1,2,"name"

end

a,b,name = rfun()

函数可以传递可变参数,用 ... 标识可变参数,可变参数可以赋值给变量

local function fun( ... )

local r = { ... } -- 可变参数构成的数组

local count=0

for i,v in pairs(r) do

count = count + v

end

print(count)

end

fun(1,2,3,4,5)

可变参数的长度可以用select(‘#’, ... ) 获取。

select(n, ... ) 返回从第n个开始到结束的所有可变参数。如果n大于可变参数的长度则返回nil

local function fun( ... )

print(select('#', ... ))

print(select(2, ... ))

end

fun(1,2,3,4)

fun(1)

输出:

4

2 3 4

1

怎么使用lua脚本

LUA脚本语言基本使用方法是本文要将介绍的内容,主要是来学习Lua脚本语言的使用方法,具体内容来看本文详解。

先要把下边这些语句加入到VC中的头文件,一般是加到StdAfx.h中

extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" #pragma comment(lib, "lualib.lib") #pragma comment(lib, "lua.lib") }

然后一般来说都使用一个全局的LUA库定义的这个东西

lua_State* g_Lua;

并且在工程处初始化时也给LUA初始化

g_Lua = lua_open(); **加这句 /* load Lua base libraries */ 网上一些教材中这么写的 lua_baselibopen(g_Lua); 不过我这简单的例子中不用到这些也行 lua_tablibopen(g_Lua); lua_iolibopen(g_Lua); lua_strlibopen(g_Lua); lua_mathlibopen(g_Lua);

紧接着声明接口函数,注册上函数

lua_register(g_Lua, "Message", myMessage);

好,初始化部分完了,看看接口函数的写法。

函数必须这样的格式来写

static int Func(lua_State *L) { 静态型函数,而且必须带参数为lua_State结构指针 返回的值是代表返回的数据个数,比如return 2;就可以代表 返回两个整数啊,浮点数什么的,象LUA的脚本编写就可以这样 i, j = Func() , 这样就表示可以从Func接口函数中得到两个返回值了 return 0; }

执行脚本语句可以读文件,也可以直接读函数名

注册了

lua_register(g_Lua, "Message", myMessage); static int myMessage(lua_State *L) { OutputDebugString("OK"); return 0; } lua_dofile(g_Lua, strCurPath); //读文件,必须给出完整的文件路径名称 lua_dostring(g_Lua, "Message()"); //直接读函数

文件中只要写上

Message()

就可以了。

lua 动态修改元方法

1、 利用lua中 "lua_shared_dict" 指令开辟一个共享内存空间;

2、通过API动态根据key值参数修改 upstream (这里使用 host 作为key);

3 、利用 proxy_pass 可使用变量特性及lua指令 "set_by_lua" 动态修改当前 upstream 变量即可。

(责任编辑:IT教学网)

更多

推荐照片处理文章