-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
lua腳本用什么編寫(lua腳本編寫教程詳細(xì))
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于lua腳本用什么編寫的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,有小程序、在線網(wǎng)頁版、PC客戶端和批量生成器
官網(wǎng):https://ai.de1919.com。
本文目錄:
Lua 是怎樣一門語言?
Lua是一個(gè)簡潔、輕量、可擴(kuò)展的腳本語言。Lua有著相對(duì)簡單的C API而很容易嵌入應(yīng)用中。很多應(yīng)用程序使用Lua作為自己的嵌入式腳本語言,以此來實(shí)現(xiàn)可配置性、可擴(kuò)展性。
Lua是一種輕量語言,它的官方版本只包括一個(gè)精簡的核心和最基本的庫。這使得Lua體積小、啟動(dòng)速度快。
它用ANSI C語言編寫,并以源代碼形式開放,編譯后的完整參考解釋器只有大約247kB,到5.4.3版本,該體積變成283kB(Linux,amd64),依然非常小巧,可以很方便的嵌入別的程序里。和許多“大而全”的語言不一樣,網(wǎng)絡(luò)通信、圖形界面等都沒有默認(rèn)提供。
但是Lua可以很容易地被擴(kuò)展:由宿主語言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來就內(nèi)置的功能一樣。事實(shí)上,現(xiàn)在已經(jīng)有很多成熟的擴(kuò)展模塊可供選用。
Lua是一個(gè)動(dòng)態(tài)類型語言,支持增量式垃圾收集策略。有內(nèi)建的,與操作系統(tǒng)無關(guān)的協(xié)作式多線程支持。Lua原生支持的數(shù)據(jù)類型很少,只提供了數(shù)值(默認(rèn)是雙精度浮點(diǎn)數(shù),可配置)、布爾量、字符串、表格、函數(shù)、線程以及用戶自定義數(shù)據(jù)這幾種。
但是其處理表和字符串的效率非常之高,加上元表的支持,開發(fā)者可以高效的模擬出需要的復(fù)雜數(shù)據(jù)類型(比如集合、數(shù)組等)。
Lua是一種多重編程范型的程序設(shè)計(jì)語言:它只提供了很小的一個(gè)特性集合來滿足不同編程范型的需要,而不是為某種特定的編程范型提供繁雜的特性支持。
例如,Lua并不提供繼承這個(gè)特性,但是你可以用元表格來模擬它。諸如名字空間、類這些概念都沒有在語言基本特性中實(shí)現(xiàn),但是我們可以用表格結(jié)構(gòu)(Lua唯一提供的復(fù)雜數(shù)據(jù)結(jié)構(gòu))輕易模擬。正是提供了這些基本的元特性,我們可以任意的對(duì)語言進(jìn)行自需的改造。
Lua實(shí)現(xiàn)了少量的高級(jí)特征比如頭等函數(shù)、垃圾回收、閉包、正當(dāng)尾調(diào)用、強(qiáng)制(于運(yùn)行時(shí)間在字符串和數(shù)值之間自動(dòng)轉(zhuǎn)換)、協(xié)程(協(xié)作多任務(wù))和動(dòng)態(tài)模塊裝載。
實(shí)現(xiàn)
Lua程序不是從文本式的Lua文件直接解釋的,而是編譯成字節(jié)碼,接著把它運(yùn)行在Lua虛擬機(jī)上。編譯過程典型的對(duì)于用戶是不可見并且是在運(yùn)行時(shí)間進(jìn)行的,但是它可以離線完成用來增加裝載性能或通過排除編譯器來減少對(duì)宿主環(huán)境的內(nèi)存占用。
Lua字節(jié)碼還可以在Lua之內(nèi)產(chǎn)生和執(zhí)行,使用來自字符串庫的dump函數(shù)和load/loadstring/loadfile函數(shù)。Lua版本5.3.4是用大約24,000行C代碼實(shí)現(xiàn)的。
像大多數(shù)CPU,而不像多數(shù)虛擬機(jī)(它們是基于堆棧的),Lua VM是基于寄存器的,因此更加類似真實(shí)的硬件設(shè)計(jì)。寄存器架構(gòu)既避免了過多的值復(fù)制又減少了每函數(shù)的指令的總數(shù)。Lua 5的虛擬機(jī)是第一個(gè)廣泛使用的基于寄存器的純VM。
Parrot和Android的Dalvik是另外兩個(gè)周知的基于寄存器的VM。PCScheme的VM也是基于寄存器的。
學(xué)lua必須先學(xué)c語言嗎?
不一定先學(xué)C語言,但要有掌握其它高級(jí)語言的能力。因?yàn)閘ua本身不利于開發(fā)單獨(dú)使用的工具,而是與其它語言結(jié)合發(fā)揮各自的優(yōu)勢(shì)處理問題。
lua特性:
輕量級(jí):用c語言編寫,編譯后僅100多kb,針對(duì)嵌入式flash有限是個(gè)不錯(cuò)的選擇
可擴(kuò)展性:lua提供了非常易于使用的擴(kuò)展接口和機(jī)制,由宿主語言c或c++提供這些功能,lua可以使用它們,就像是本來就內(nèi)置的功能一樣。
語言機(jī)制特性:支持面向過程編程和函數(shù)式編程;自動(dòng)內(nèi)存管理,提供了一種通用類型的表table,用它可以實(shí)現(xiàn)數(shù)組,hash,set,object;語言內(nèi)置模式匹配,閉包,函數(shù)也可以看做一個(gè)值,提供多線程支持;
通過閉包和talbe可以很方便地支持面向?qū)ο缶幊趟枰囊恍╆P(guān)鍵機(jī)制,比如數(shù)據(jù)抽象,虛函數(shù),繼承和重載。
擴(kuò)展資料:
Lua腳本可以很容易的被C/C++代碼調(diào)用,也可以反過來調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中可以被廣泛應(yīng)用。不僅僅作為擴(kuò)展腳本,也可以作為普通的配置文件,代替XML,ini等文件格式,并且更容易理解和維護(hù)。
Lua由標(biāo)準(zhǔn)C編寫而成,代碼簡潔優(yōu)美,幾乎在所有操作系統(tǒng)和平臺(tái)上都可以編譯,運(yùn)行,一個(gè)完整的Lua解釋器不過200k,在所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的最佳選擇。
參考資料來源:百度百科-lua
用lua腳本開發(fā),用什么編輯器好
官方推薦的SciTE lua官網(wǎng)可以載到
民間用的比較多的NotePad++ Sublime Text3
如果需要對(duì)功能進(jìn)行斷點(diǎn) 可以用decoda
以上就是關(guān)于lua腳本用什么編寫相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
ChatGPT plus會(huì)員(ChatGPTplus會(huì)員)
vi設(shè)計(jì)清單(vi設(shè)計(jì)清單英文)