国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

Lua中的loadfile、dofile、require詳解

2024-07-21 23:04:02
字體:
供稿:網(wǎng)友

本來今天不應(yīng)該討論這幾個(gè)函數(shù)的,不過,為了湊字?jǐn)?shù)..不,為了方便以后的文章,還是要談?wù)勥@幾個(gè)基礎(chǔ)函數(shù)的~

1.loadfile——只編譯,不運(yùn)行

loadfile故名思議,它只會加載文件,編譯代碼,不會運(yùn)行文件里的代碼。
比如,我們有一個(gè)hellofile.lua文件:

復(fù)制代碼 代碼如下:

print(“hello”);
function hehe()
print(“hello”);
end

這個(gè)文件里有一句代碼,和一個(gè)函數(shù)。試試用loadfile加載這個(gè)文件,如下代碼:
復(fù)制代碼 代碼如下:

    loadfile("hellofile.lua");
    print("end");

 

輸出結(jié)果如下:

復(fù)制代碼 代碼如下:

[LUA-print] end

如果說loadfile會執(zhí)行文件里的代碼的話,那么,應(yīng)該會輸出hello字符串的。
結(jié)果表明,它是不會執(zhí)行代碼的。

 

2.dofile——執(zhí)行

很明顯,dofile就是會執(zhí)行代碼的家伙了,如下代碼:

復(fù)制代碼 代碼如下:

    dofile("E:/Android/wordspace_cocosIDERc0/CocosLuaTest/src/hellofile.lua");
    print("end");

 

輸出結(jié)果如下:

復(fù)制代碼 代碼如下:

[LUA-print] hello
[LUA-print] end

這里有點(diǎn)尷尬,文件路徑我用了絕對路徑,因?yàn)閐ofile在Coco Code IDE里使用相對路徑會找不到文件(即使使用了addSearchPath)

 

不過沒關(guān)系,不影響本文的內(nèi)容。

3.require——我只執(zhí)行一次

require和dofile有點(diǎn)像,不過又很不一樣,require在第一次加載文件的時(shí)候,會執(zhí)行里面的代碼。

但是,第二次之后,再次加載文件,則不會重復(fù)執(zhí)行了。換句話說,它會保存已經(jīng)加載過的文件,不會重復(fù)加載。
測試代碼如下:

復(fù)制代碼 代碼如下:

    for i = 1, 2, 1 do
        require("hellofile.lua");
    end
    print("end");

 

為了說明這種情況,我刻意調(diào)用了兩次require,輸出結(jié)果如下:

復(fù)制代碼 代碼如下:

[LUA-print] hello
[LUA-print] end

和我們說的一樣,調(diào)用了兩次,但是代碼只執(zhí)行了一次。
如果這里換成dofile,則會輸出兩次hello字符串。

 

4.結(jié)束

我發(fā)現(xiàn)這樣邊看書邊整理文章,進(jìn)度有點(diǎn)慢…真是魚和熊掌的問題了。

 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 含山县| 肇州县| 云霄县| 上栗县| 盖州市| 杭锦旗| 积石山| 酒泉市| 开远市| 望谟县| 金平| 南漳县| 常熟市| 罗源县| 姜堰市| 濮阳县| 大余县| 阿巴嘎旗| 静乐县| 建德市| 宜州市| 保德县| 巫溪县| 门头沟区| 兴海县| 祁连县| 永嘉县| 德钦县| 威海市| 含山县| 阳泉市| 石城县| 广水市| 新密市| 巫溪县| 望奎县| 灵璧县| 大渡口区| 北票市| 桦川县| 五指山市|