1樓:匿名使用者
function filtercolor(src, rgb)if type(src) ~= "table" or not rgb then
return
endlocal ret = {}
for i, v in ipairs(src) doif v.color == rgb thenret[#ret+1] = v
endendreturn retend
怎樣在lua指令碼中呼叫另乙個lua指令碼中的函式呢???
2樓:匿名使用者
require「函式指令碼檔案名字」
下面可以直接呼叫,也可以使用pcall方法安全呼叫
3樓:匿名使用者
除了樓上的回答,還可以這樣,dofile("b.lua") 然後就可以在a.lua指令碼中呼叫b.lua中的函式了。
4樓:匿名使用者
a.lua中require("b.lua"),即可呼叫b.lua中函式。
lua指令碼的幾個疑問
5樓:匿名使用者
關於dostring中的區域性變數 這裡剛好是有個特殊情況的
我用的luaforwindows直接執行的 沒dostring 就先用loadstring了
local a = 1
print(loadstring("a = 123")())
print(a,_g.a)
這裡a = 123執行時 不會給區域性變數a進行賦值操作,而是修改了全域性變數a
對於到底是區域性變數還是全域性變數的判斷 依據的是 使用這個變數的這個區域 在使用之前 是否有過區域性變數的宣告
比如a = 1
print(a)
local a = 2
print(a,_g.a)
這樣就能看到2個不同的a
而在function msg(x,y)中
是因為x和y是被當作實參傳過來的 函式裡的實參 在函式內部都是作為區域性變數來使用 所以xy是區域性而a是全域性
6樓:匿名使用者
a = dostring.....
dostring最後乙個返回值,就是準備給a的。
c++繫結函式返回時,它只能且必須返回乙個值,這個值通知lua,我返回了幾個值在堆疊裡。你不返回這個值的話,難道讓lua去猜你會返回幾個值?你這裡設了返回值個數後,lua才會給你分配保留適當的空間,不然你返回後,之前放的返回值就丟了。
dofile和dostring一樣,會先獲取原始檔或字串內容,然後編譯,再逐條執行**。
你說的多執行緒,我不明白你的意思,就不說了。
最後那個x和y當然是臨時的,而那個a,是全域性的了。
lua5.2和之前的版本不一樣了,「全域性」不是真正的全域性,而是當前環境的全域性,仔細去看看lua5.2的官方文件。
shell指令碼裡的函式怎麼呼叫
shell中的函式,要在定義這個函式的指令碼中進行呼叫!bin sh echo line echo hello 在這裡呼叫 將全部 寫入test.sh就可以了echo call echo hello echo hello echo call echo line echo line 在命令列下執行 t...
proteus中的找這個元件怎麼找
給你看看這個圖符,應該知道說的是什麼吧 這個與你想找的是不是一樣呀 這個元器件在proteus中怎麼找?這個元器件在proteus中是個按鍵,可以直接找button就行了,放置後可以雙擊,輸入按鍵的名稱。這個元件在proteus中怎麼找 這是可調電阻,也叫電位器,在 proteus 中有兩種,一種是...
ecel的if函式中條件區域怎麼輸
萬年金剛鑽 怎麼輸?根據需求,也就是判斷的依據可以是下面的任何一種或組合 a1 1 b2 3 c4 錯 sum a1 b3 5 等等等等 舍火烈風 可以直接輸入a1 f19這樣的區域,也可以用滑鼠進行選擇 應用達人 一,if函式的公式是 if 邏輯表示式,如果結果為真時的表示式,如果結果為假時的表示...