說明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請撥打電話 400 685 0732
全網(wǎng)監(jiān)測海量數(shù)據(jù)按需發(fā)布監(jiān)測預(yù)警
實時把握輿情動態(tài)精準(zhǔn)追溯信息源頭
lua的優(yōu)點是夠小夠簡潔。但缺點也就是這五個字。對我來說,沒有內(nèi)建utf-8支持的語言在我的工作環(huán)境中非常不便。雖然可以自己寫庫,但引入了額外的工作。另一個問題是它的c接口風(fēng)格。相對于python和perl使用的接口,lua的接口風(fēng)格和匯編更接近。開始寫起來時多少有些別扭。好在時間長了就慢慢習(xí)慣了。
lua語言——lua語言特性是什么
只有一種復(fù)合數(shù)據(jù)結(jié)構(gòu)table,實際上dict和array是應(yīng)該分開的,用lua做過實際項目,應(yīng)該能明白這是種不小的困擾沒有continue,白白增加了一層循環(huán),增加了縮進(jìn)層次,費(fèi)電且看起來不方便只有一種數(shù)字類型(double),這不僅僅有性能問題,語義也不對不支持異常處理,默認(rèn)的方式對編程不友好,不管如何強(qiáng)調(diào)保持語言的精簡,也不應(yīng)該不支持異常處理不支持decorator,這是非常重要的語法糖先寫這么多,另外談?wù)剬ι厦嬉恍┡笥训目捶ǖ目捶ǎ簺]有多核(線程)支持,這個問題基本上不成立,多線程支持不見得非得通過語言提供,尤其是對lua這種以嵌入為基本目標(biāo)的語言,lua要保持純ansic實現(xiàn),就不能支持多線程,因為多線程不在c標(biāo)準(zhǔn)中。這里面值得討論的是如何在lua中提供多線程支持,第一種是在宿主程序中提供,第二種是作為庫提供,具體的問題談起來比較復(fù)雜,不過,如果你需要一個和本地線程n-n的,能好好的按照你的預(yù)期工作的平凡的多線程系統(tǒng),參考《lua程序設(shè)計》第二版,某章就用pthread實現(xiàn)了這么一個東西,你只需照抄代碼就可以取得。如果使用luajit,可以用luajit/ffi對luajit編程,可以實現(xiàn)一個沒有外部依賴的多線程系統(tǒng)。c/api難用,至少lua的c/api和python的比屬于非常非常好用的,可以說lua是大體上最容易編程的解釋器/虛擬。
lua是什么編程語言
lua是一個小巧的腳本語言。作者是巴西人。該語言的設(shè)計目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。它的主頁是www.lua.org。
lua最著名的應(yīng)用是在暴雪公司的網(wǎng)絡(luò)游戲wow中。
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)和平臺上都可以編譯,運(yùn)行。
一個完整的lua解釋器不過200k,在目前所有腳本引擎中,lua的速度是最快的。這一切都決定了lua是作為嵌入式腳本的最佳選擇。
lua有一個同時進(jìn)行的jit項目,提供在特定平臺上的即時編譯功能,這將給lua帶來更加優(yōu)秀的性能。請訪問http://luajit.org/來了解這個項目。
其它特性lua還具有其它一些特性:同時支持面向過程編程和面向?qū)ο缶幊蹋蛔詣觾?nèi)存管理;提供一系列數(shù)據(jù)結(jié)構(gòu),包括數(shù)組、鏈表、集合、字典、散列表等;語言內(nèi)置正則表達(dá)式匹配;閉包(closure);函數(shù)也可以看做一個值;提供多線程支持;等等。如果大家還想了解更多與之有關(guān)的信息,歡迎關(guān)注我們文軍營銷的官網(wǎng)。
推薦閱讀
說明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請撥打電話 400 685 0732