Azt akarom tudni, hogy mindent

A mai vendég - egy igazi harcos rejtett front. Látni lehetett, hogy a játékok (World of Warcraft, Angry Birds, X-Plane, S.T.A.L.K.E.R.), vagy a cég termékei Adobe (Lightroom), de nem is hiszem, hogy létezik. Eközben ezen a nyelven csaknem 25 éven át, és egész idő alatt csendben tette a virtuális élet egy kicsit jobban.

Azt akarom tudni, hogy mindent

háttér

Dinamikus tipizálás itt van, és a végrehajtására öröklés használt metatables, ez egy nagyszerű eszköz bővül a termék tulajdonságait. És mert a kompakt méret is alkalmas szinte bármilyen platformon. Bíró magadnak: tarballt Lua 5.3.4 súlya mindössze 296 kilobájt (a „tömörítetlen” a - 1,1 megabájt), tolmács (C-ben írt) a Linux - 182-246 kilobájt, és a standard a könyvtáraknak - még 421 kilobájt.

Kezdjük a hagyományos:

Elfogadom, ismerős és nem túl informatív. Egy érdekes példa szempontjából ismerete Lua - faktoriálisát megadott számot:


függvény tény, (n)
ha n == 0, akkor
return 1
más
vissza n * tény, (n-1)
vég
vég

print ( "adjon meg egy számot:")
a = io.read ( "A szám") - olvasható a szám
print (tény (a) pont)

Minden világos. By the way, a Lua támogatja a párhuzamos hozzárendelés:

És végül, egy viszonylag egyszerű példa segítségével a könyvtár:

#include
#include
#include
#include
#include

int main (void) char barnássárga [256];
int error;
lua_State * L = lua_open (); / * Megnyitja Lua * /
luaopen_base (L); / * Megnyitja az alap könyvtár * /
luaopen_table (L); / * Megnyitja a táblázat könyvtár * /
luaopen_io (L); / * Megnyitja az I / O könyvtár * /
luaopen_string (L); / * Megnyitja a húr lib. * /
luaopen_math (L); / * Megnyitja a matematikai lib. * /

míg a (fgets (barnássárga, sizeof (barnássárga), stdin)! = NULL) error = luaL_loadbuffer (L, barnássárga, strlen (buff), a "vonal") ||
lua_pcall (L, 0, 0, 0);
ha (hiba) fprintf (stderr, "% s", lua_tostring (L, -1));
lua_pop (L, 1); / * Pop hibaüzenet a verem * /
>
>

lua_close (L);
vissza 0;
>

Előnyök és hátrányok

Szóval, mi a jó Lua?

Először is, mint már említettük, a tömörség, és azzal a ténnyel, hogy a forráskód C-ben írt, akkor kap egy teljes kölcsönhatás az egyik legnépszerűbb nyelv a világon, és a számos rendelkezésre álló platformokon.

Másodszor, ez gyors. Ha megnézzük az összehasonlító jellemző más nyelveken, akkor látható, hogy bár a Lua, és nem illeszkedik a C vagy a Python pengék, de azt mutatja, kiváló eredményeket néhány tesztet.

Harmadszor, nagyon kényelmes, hogy vizsgálja még a legtapasztaltabb programozók. Bizonyára még azok is, akik egyszerűen csak tud angolul, érteni legalább 80% -át a fenti kódot, és képes reprodukálni.

A negyedik érv - nem lesz semmilyen probléma találni információkat. Lua Van egy csomó hasznos információt közvetlenül a hivatalos honlapon. Ezen kívül egy nagyon rossz fejlődés közösség StackOverflow és IRC-chat. és az amerikai fejlesztők és az alkotók, és nem fordul elő évente.

Szerelmesek a kortárs irányzatok vonják a tényt, hogy írhat a Lua függvény kod.Da ott, ha legalább egy pár hétig Programozás Lua, rájössz, hogy több mint egy tucat profik.

Azonban nincs nyelvi hibátlan, de Lua azok helyi. Például az alapértelmezett nyelv nem támogatja a Unicode, de ez korrigálható a speciális ICU könyvtár. Vagy csak korlátozott lehetőségei hibakezelés és a kivételek. bár sokan úgy vélik, hogy a jó. Vagy annak szükségességét, hogy a return utasítást csak az utolsó egy blokk, de a lényeg, sok ez egy természetes szabály jó kódot.

fejlesztőkörnyezet

ZeroBrane Studio - Specialized környezetben írt Lua;

Decoda - nem a legnépszerűbb cross-platform IDE, de egy alternatív megközelítést;

WoWUIDesigner - Gondolom néhány játék ebben a közegben segít kezelni szkriptek, beleértve Lua?

Azt akarom tudni, hogy mindent

hasznos linkek

Kapcsolódó cikkek