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