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