1. Czym jest lua&luaJit?
lua(www.lua.org)W rzeczywistości jest to język skryptowy opracowany do osadzania innych aplikacji
Luajit(www.luajit.org)Jest to kompilator just-in-time systemu wykonawczego Lua, a także można go uznać za wydajną wersję Lua.
2. Zalety
1) Lua to darmowy, mały, prosty, potężny, wydajny i lekki język skryptowy osadzony, a obecna wersja dystrybucji 5.3.1 Lua kosztuje tylko 276k. 2) Jest to projekt opracowany w języku C, więc może działać na większości systemów operacyjnych 3) Lua jest obecnie najszybszym językiem skryptowym, co może poprawić elastyczność języka i zmaksymalizować szybkość zapamiętywania 4) Jego składnia jest bardzo prosta, nie ma wyjątków 5) lua może być również używane jako API dla C
3. Niedoskonałości i różnice
1) Lua nie posiada potężnej biblioteki, więc wiele funkcji jest zaimplementowanych bez zwięzłych języków skryptowych, takich jak python, perl czy ruby 2) Funkcja obsługi wyjątków w Lua budzi kontrowersje, choć zapewnia funkcje obsługi wyjątków dla pcland i xpcall 3) Wsparcie dla kodowania Unicode nie jest dostępne w natywnym języku LUA, choć można http://www.cppblog.com/darkdestiny/archive/2009/04/25/81055.html osiągnąć poprzez pewne kompromisy 4) Nie zapewnia operatorów ternarnych dla a?b:c, które są szeroko stosowane w C++ 5) Brak przełącznika... sprawa... składnia, którą można wykonać tylko jeśli, jeśli: Inaczej.. Inaczej.. W przeciwnym razie... Metoda końcowa 6) Składnia kontynuacji nie jest dostępna podczas zapętlania 7) Nie ma operacji takich jak a++ i a+=1, które są szeroko stosowane w C++ 8) Indeks Lua zaczyna się od 1, a nie od znanego 0 (string, tabela) 9) Gdy przypisujesz element do nik, oznacza to, że ten element nie istnieje 10) Typ liczbowy lua to tylko liczba i nie ma rozróżnienia między int, float, double itd 11) W lua nie ma pojęcia klas, a ich klasy są zaimplementowane w formie tabel 12) Tylko nil i false w lua są fałszywe, a zero jest prawdziwe w lua 13) Wiele programów musi być oznaczonych (), aby działać, na przykład a={["b"]=5}, print(a.b) może być wykonany, ale {["b"]=5}.b zgłosi błąd, a ({["b"]=5}).b jest wymagane
4. Przegląd
Podsumowując, LUA to prosty i wydajny ngx_lua szeroko stosowany w tworzeniu logiki gier i serwerów.
Przeniesiono z: https://blog.csdn.net/ugly_man_/article/details/48577007
Załączone:
Test porównawczy z Lua i Luajit: https://blog.csdn.net/alexwoo0501/article/details/50618031
|