Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 14194|Odpowiedź: 0

Mocne i słabe strony Lua i Luajita

[Skopiuj link]
Opublikowano 27.04.2018 09:44:40 | | | |
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





Poprzedni:Podatność na firewall aplikacji WAF firmy Nginx Lua
Następny:NGINX dodaje moduły firm trzecich oraz umożliwia moduły obsługiwane natywnie przez NGINX
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com