㈠ 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 。