簡體   English   中英

LUA - 如何使用_G [x]()方法從字符串中調用函數

[英]LUA - How to call a function from a string using the _G[x]() method

我的代碼有問題,我不知道是什么,我在網上搜索,_Gx方法被建議作為loadtring(x)之類的最佳方式...雖然我很滿意,不能讓任何一個工作。 我想要做的是,在ComputerCraft中,將函數名稱和參數發送給烏龜,我正在通過將兩個值保存到表並發送到表中,然后在烏龜的程序中,有一個大的列表函數,並使用命令,從發送的字符串中調用它們,並插入arg。 我的錯誤是“試圖打電話給零”,我不太明白為什么會這樣說...在此先感謝!

編輯

正如我所要求的那樣,我已經編輯了我的代碼,以表明即使剝離所有其他東西,這仍然會失敗。 我甚至可以通過將變量完全取出並將弦直接放入_G來進一步剝離它。 即使這樣做也仍然失敗。 我決定保留它,因為這就是我以后實際使用它的方式。 調用該函數通常正常。 我正在使用版本Luaj-jse 2.0.3

function foo ()
  print ("HI!")
end

print (_VERSION)

我不知道rednet是什么,但似乎你將函數名稱傳遞給另一個Lua VM,它對該函數一無所知(該函數在該VM的全局表中不存在)。
因此,將函數定義作為字符串傳遞並通過帶有loadstring的接收器執行它是唯一的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM