导航:首页 > 方法技巧 > lua中如何定义有返回值的方法

lua中如何定义有返回值的方法

发布时间:2022-06-21 07:50:19

㈠ LUA注册的函数怎么返回值。

学写程序了 就别用中文做函数名了 虽然改了lua源码后可以实现对中文函数名的支持

但是这样的代码健壮性不好 编码会给你带来无穷的问题

返回值用return

--这里我把两数相加这个函数命名成add了
functionadd(x,y)
returnx+y
end
locala=(100,200)
Msgbox(a)--潜在的问题这个函数如果只接收string的话你传入的number类型会出错

㈡ 关于lua语言的 return返回值问题

不结束自然就执行下一步啊.
假如你的函数是 fun1, 结束是 fun2, 下一步是 fun3
写成:
if fun1() == true then
fun2();
end
fun3();

㈢ lua脚本的table.concat怎么提取返回值

concat返回的是字符串。select_sort 改写了 tb吗? 提取单独的数字只需要加上索引。
tb[1] tb[2] tb[3]

㈣ 刚学lua,我知道lua的函数使用return "字符串"返回内容,我的问题是:如果想要返回的字符串中本身就带...

return “\"字符串";
\符号是转义字符,想近回一个引号,你就要在引号前加上一斜杠。
lua我不懂,但是很多编程语言都是这样的,你拿去试一下看看。

㈤ 急求 Lua 中 函数有多个返回值 不确定数目 但 想要全部的怎么办

functionfun()
return1,2,3,4,5,6,7
end

localt={fun()}
--这样t就是一个由1-7的数字组成的table

㈥ Lua方法返回值做参数的问题

报的什么错,能粘上来看看不?
还有,确认下,getNumber每次只返回一个值吗?如果多于一个返回值,那必然是不行的

㈦ LUA 读取C#中返回值为数组的函数

返回数组给lua并不是这样吧,应该是返回一个 table

我记得应该是

lua_newtable


然后往这个table里插入。

还有你确定你这个C#的函数注册了吗。我记得注册到lua里的函数定义应该不是这样的


函数应该是返回一个 int 值,表示该函数返回多少个返回值。

//定义一个C函数
//如这个函数,返回1一个返回值,值为9
intTest(lua_State*l)
{
lua_pushinteger(l,9);
return1;
}
//将这个函数注册到lua内
lua_register(L,"Test",Test);

这样lua内就可以使用
localk=Test()

结果k=9

㈧ lua 里return是什么意思啊怎么用呢

return就是返回的意思

function func()
return 1 --意思是把1这个整数返回
end

local value = func --上面的func函数返回了整数1,然后把1赋值给value, 所以value为1

另外lua支持返回多个数值。比如你的例子中返回的c1,c2,c3,c4,c5,
那么 c1,c2,c3,c4,c5的值就赋给了p1,p2,p3,p4,p5 ,也就是c1对应p1,c2对应p2 以此类推。明白了没

㈨ LUA怎么获取指定的函数返回值

当 Lua 调用 C 函数的时候,使用和 C 调用 Lua 相同类型的栈来交互。C 函数从栈中获取她的参数,调用结束后将返回结果放到栈中。为了区分返回结果和栈中的其他的值,每个 C 函数还会返回结果的个数(the function returns (in C) the number of results it is leaving on the stack.)。

// luacallcpp.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include <stdio.h>


//lua头文件
#ifdef __cplusplus
extern "C" {
#include "lua.h"
#include <lauxlib.h>
#include <lualib.h>
}
#else
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
#endif

int static add(lua_State* L)
{
//获取第一个参数
double x=lua_tonumber(L,1);
double y=lua_tonumber(L,2);
//返回值压栈,压入两个返回值
lua_pushnumber(L,x+y);
lua_pushnumber(L,1000);

//返回值的个数,
return 2;
}


int _tmain(int argc, _TCHAR* argv[])
{

lua_State * L=NULL;

/* 初始化 Lua */
L = lua_open();

/* 载入Lua基本库 */
luaL_openlibs(L);

/* 运行脚本 */
luaL_dofile(L, "./script/func.lua");

//函数入栈
lua_pushcfunction(L,add);
//设置全局函数名
lua_setglobal(L,"Add");
//调用lua函数LUACALLCPP来反调cpp中的add
lua_getglobal(L,"LUACALLCPP");
lua_pushnumber(L,10);
lua_pushnumber(L,34.33);
//两个参数,两个返回值
lua_pcall(L,2,2,0);
//取返回值二
printf("lua call cpp return val is %f ",lua_tonumber(L,-1));
//取返回值一
printf("lua call cpp return val is %f ",lua_tonumber(L,-2));


/* 清除Lua */
lua_close(L);

return 0;
}

---------------------------------------

--region *.lua
--Date
--此文件由[BabeLua]插件自动生成

print("func.lua hava been loaded")

function LUACALLCPP(x,y)
-- 调用c++中的函数
return Add(x,y)
--print(Add(x,y))
end

--endregion

运行结果:

㈩ lua基础 print(a)返回

print()如果作为函数,它在向显示设备输出变量a的值的同时,它的返回值为nil 。

阅读全文

与lua中如何定义有返回值的方法相关的资料

热点内容
过滤烟嘴使用方法 浏览:548
脸部红血丝的治疗方法 浏览:327
双面羊绒的边如何缝制方法视频 浏览:752
脑血管堵塞手脚无力用什么方法治 浏览:532
贵州学习方法哪里学 浏览:406
变压器串连接方法 浏览:398
爱卫唾液试纸使用方法 浏览:621
鱼钩鱼线鱼竿的连接方法 浏览:242
一建各科内各种计算方法编制方法 浏览:574
葛藤蔓的种植方法 浏览:502
小米平板的照片在哪里设置方法 浏览:689
毛囊增生怎么治疗方法 浏览:564
99999999用简便方法计算 浏览:328
蔚来汽车倒车刹车异响解决方法 浏览:175
蝗虫飞机的制作方法简单 浏览:948
预防治疗近视的方法 浏览:59
瓷砖下面潮湿用什么方法快速干 浏览:87
脑部淋巴瘤治疗方法 浏览:841
增加现金流净额的方法有哪些 浏览:629
钓鱼主线和竿的连接方法 浏览:366