lua中的函式如果獲取自己的名稱

2021-03-19 18:20:10 字數 2108 閱讀 2760

1樓:匿名使用者

可以獲得 但不推薦用 因為debug庫儘量少用的好function fun()

print(debug.getinfo(1).name)endfun()

debug庫的東西執行起來效率普遍不高 而且有風險再就是debug庫很多內容破壞了語法裡的local特性 導致可在外部看到區域性變數

2樓:匿名使用者

函式內部, 本身就在函式定義的地方, 應該是直接就知道自己的名字.

lua函式有沒有辦法獲得呼叫自身的檔案的路徑?

3樓:匿名使用者

你可以考慮用debug庫幫助你

for i,v in pairs(debug.getinfo(2)) do

print(i,v)

end但是我不是很推薦這個庫 這個庫的很多函式效率很低 而且破壞了域的概念

你應該通過許多其他途徑對這個函式進行維護

其中2表示當前棧的層次 因為你是兩重的函式呼叫,所以是上一層的函式呼叫相關的資訊,比如名字,函式 所在檔案 函式定義的行數等等

執行demo的時候要注意 這一段**不能拿去獨立執行 必須放在第二重巢狀的函式裡使用

lua函式中的函式名是什麼?

4樓:錯落二人組

lua的變數預設全域性,所以可以直接呼叫b()但是注意,由於b是在a中定義的,所以必須先呼叫過a即:function a()

function b()

print("current func: b")endprint("current func: a")endb()  --報錯,b()尚未定義

a()  --輸出 current func: ab()  --b可以正常呼叫,輸出current func: b

lua怎麼獲取函式的引數名

5樓:匿名使用者

為啥要獲取引數名,我寫了幾萬行lua,都沒遇見這種奇葩的需求。。。。

lua 怎麼獲取函式的upvalue

6樓:great雨點

lua中的函式是一階型別值

(first-class value),定義函式就象建立普通型別值一樣(只不過函式型別值的數專

據主要是一條條指屬

令而已),所以在函式體中仍然可以定義函式。假設函式f2定義在函式f1中,那麼就稱f2為f1的內嵌(inner)函式,f1為f2的(enclosing)函式,和內嵌都具有傳遞性,即f2的內嵌必然是f1的內嵌,而f1的也一定是f2的。內嵌函式可以訪問函式已經建立的所有區域性變數,這種特性便是所謂的詞法定界(lexical scoping),而這些區域性變數則稱為該內嵌函式的外部區域性變數(external local variable)或者upvalue(這個詞多少會讓人產生誤解,因為upvalue實際指的是變數而不是值)。

lua語言中的函式? 100

7樓:折柳成萌

lua的變數預設全域性,所以可以直接呼叫b()

但是注意,由於b是在a中定義的,所以必須先呼叫過a

即:function a() function b() print("current func: b") end print("current func:

a")end b() --報錯,b()尚未定義 a() --輸出 current func: ab() --b可以正常呼叫,輸出current func: b

lua語言中,定義一個函式,然後函式內定義一個匿名函式,呼叫函式時,匿名函式內的**也會執行嗎

8樓:匿名使用者

這得看**具體實現,一般情況匿名函式都是作為引數,執行不執行,怎麼執行得看**

就好像我定義了一個函式,如果我不呼叫它,那它就不會執行function func()

return function() return "aaaa" end

endlocal f = func()

-- f 並不等於 aaaa,而是那個匿名函式的地址f()    -- 執行

如何獲取自己的IP地址

ip address.192.168.0.3 就是你機器的ip 沒有錯 你想看路由的ip 就192.168.0.1看查下就知道了 ip address就是指ip地址,不過這是內部使用的ip地址,在上公共網路時,dhcp伺服器會為你隨機分配一個公用ip地址,這個是隨機的,不能確定 你直接進ip138....

如何利用錨定效應來獲取自己想要的東西

前段時間,在美國的俄亥俄州,一個十二歲的小姑娘利用放學後的時間一年銷售餅乾4萬多包,這就意味著她每天至少有110包以上的銷量,這個案例震驚了北美的銷售專家。這小姑娘是怎麼做到的呢?她開始只是為了買一輛自行車,為了實現這個小目標,她每天上學時會把書包裡塞滿餅乾,然後帶一張30美元的彩票。放了學她就上門...

如何獲取jar中的函式,如何獲取jar檔案中的函式

這個已經寫的挺明白了,你不可以看明白裡面怎麼實現的,class檔案是已經編譯過的。這裡public byte a 就是宣告瞭一個變數。field descriptor 就是類的屬性,medthod descriptor 就是你說的函式了。public ev 是這個類的構造,沒有其它的函式。這裡不是加...