導航:首頁 > 方法技巧 > 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中如何定義有返回值的方法相關的資料

熱點內容
快速簡單安全的減肥方法 瀏覽:933
常用硫酸制備方法 瀏覽:814
非淋性前列腺炎的治療方法 瀏覽:678
過濾煙嘴使用方法 瀏覽:550
臉部紅血絲的治療方法 瀏覽:329
雙面羊絨的邊如何縫制方法視頻 瀏覽:754
腦血管堵塞手腳無力用什麼方法治 瀏覽:534
貴州學習方法哪裡學 瀏覽:408
變壓器串連接方法 瀏覽:398
愛衛唾液試紙使用方法 瀏覽:623
魚鉤魚線魚竿的連接方法 瀏覽:245
一建各科內各種計算方法編制方法 瀏覽:577
葛藤蔓的種植方法 瀏覽:505
小米平板的照片在哪裡設置方法 瀏覽:691
毛囊增生怎麼治療方法 瀏覽:568
99999999用簡便方法計算 瀏覽:332
蔚來汽車倒車剎車異響解決方法 瀏覽:176
蝗蟲飛機的製作方法簡單 瀏覽:948
預防治療近視的方法 瀏覽:60
瓷磚下面潮濕用什麼方法快速干 瀏覽:87