lua如何穿函式引數可以是函式麼

2021-03-04 06:20:48 字數 1647 閱讀 8753

1樓:聆聽隨風

可以,就像變數一樣使用

--函式

function g_func(param)end變數

local g_number = 1

--做事情

function do**(num, fn)--傳進來的變數g_number

local number = num

--傳進來的函式g_func

fn(value)

end--主函式

function main()

--把變數和函式傳入do**函式

do**(g_number , g_func)end

如何把lua的函式作為**函式當引數傳給c**

2樓:埖**押諂

遊戲中類似的問題很多,比如設定trigger,當玩家公升級死亡的時候呼叫指令碼函式。

初級方法,全域性的luastate,全域性函式,把函式名註冊到trigger中去。

更進一步,希望支援coroutine,那麼把luastate和ref一起註冊

注意到,在coroutine也要記錄註冊的物件,在coroutine結束的地方需要取消註冊。如果不這麼做,而是武斷的:co = nilcollectgarbage 'collect'

lua同乙個方法名不同引數視為不同函式嗎

3樓:匿名使用者

在c裡面是不行的,編譯器會報錯。

但是在c++和lua是允許的,允許函式的過載,但是過載是有條件的

lua中的handler和function作為函式引數的不同

4樓:匿名使用者

可以獲得 但不推薦用 因為debug庫盡量少用的好 function fun()print(debug.getinfo(1).name)endfun()debug庫的東西執行起來效率普遍不高 而且有風險 再就是debug庫很多內容破壞了語法裡的local特性 導致可在外部看到區域性變數。

可以,就像變數一樣使用

--函式

function g_func(param)end變數

local g_number = 1

--做事情

function do**(num, fn)--傳進來的變數g_number

local number = num

--傳進來的函式g_func

fn(value)

end--主函式

function main()

--把變數和函式傳入do**函式

do**(g_number , g_func)end

怎樣給lua指令碼傳遞引數和指令碼怎樣接受這些引數

5樓:一子暴脾氣

兩種方式:

1、指令碼內定義全域性函式(非local的), 然後在別的指令碼require這個指令碼後直接通過名稱版和引數進行呼叫(類似權c函式的呼叫)

2、指令碼內定義乙個message_handler的入口函式(類似main函式),這個入口函式接受乙個msg和一系列的params。然後別的指令碼或函式通過postmessage或者sendmessage函式。向指定指令碼傳遞引數msg和params,進而進行處理

如何定義不定引數函式

不定引數個數 傳遞時要指明其引數型別 還有檔案包含庫 你也沒包含進來 include 函式可變引數巨集包含在此檔案中 屬於c語言的標準庫 給你乙個例子 功能名稱 aveage 通過可變引數巨集來完成n個數的平均值計算入口引數 paranum 引數個數 可能的引數出口引數 平均值float 備註名稱 ...

如何編寫matlab函式檔案,使輸入引數a,b分別為矩形的長

function srect srect a,b switch nargin case 1 srect a a case 2 srect a b otherwise disp 請輸入矩形的長和寬資料!end function m,n rectangle statistics a,b 輸入變數為a,b...

VC中如何執行帶引數的main函式

函式寫好之後需要為main函式提供引數,這個在linux下面是不需要討論的,不過在vc下面還是需要注意一下引數的給定方法和目標檔案的位置問題。函式引數的給定方法 1 project settings debug program arguments 中新增需要的引數,以空格為分隔符,注意不需要程式的名...