Obsah
V minulých tutoriálech jsme viděli, jak Lua umožňuje dynamické zpracování hodnot i typů a vždy vyniká svou jednoduchostí a univerzálností při provádění těchto operací.Ale to není vše Lua nabízí z hlediska jednoduchosti, konvenčně podporuje deklarace, které můžeme najít v jazycích jako v C nebo PascalTam, kde tyto deklarace zahrnují přiřazení a řídicí struktury, můžeme dokonce narazit na některé nekonvenční způsoby, jako je více přiřazení a místní deklarace.
Úkoly v Lua Jsou extrémně jednoduché a pracují na změně hodnoty proměnné v určitém čase v našem programu, podívejme se na jednoduchý příklad pomocí interaktivní konzoly Lua, které můžeme zadat umístěním vyhrazeného slova Lua V terminálu:
Lua můžete dokonce upravit počet hodnot pro počet přítomných proměnných, například pokud je seznam hodnot menší než seznam proměnných, další proměnné dostanou typ hodnoty nula ve výchozím nastavení jako jeho hodnoty, podívejme se na příklad tohoto procesu:
Kromě globálních proměnných Lua Podporuje lokální proměnné, které mají na rozdíl od globálních omezený rozsah, který závisí na bloku, ve kterém byly deklarovány, podívejme se, jak deklarujeme lokální proměnnou:
x = 10 lokálních i = 1 zatímco i <= x dělat lokální x = i * 2 tisk (x) i = i + 1 konec, pokud i> 20 pak lokální xx = 20 tisk (x + 2) jinak tisk (x) konec tisk (x)Pokud provedeme totéž v našem terminálu, uvidíme, jak výsledek nemusí být takový, jaký očekáváme, a to proto, že máme různé bloky, ve kterých používáme proměnné, podívejme se na výsledek:
do local var1 = 16 local var2 = var1 + 20 x = 5 y = x + var1 end - Zde končí rozsah tisku var1 a var2 (x, y) print (var1, var2)Když to spustíme na našem terminálu, uvidíme, že proměnné xay jsou zobrazeny bez problémů, protože jsou globální, ale pro var1 a var2 jejich rozsah končí blokem do-end, uvidíme:
Řídicí strukturyStejně jako ostatní programovací jazyky Lua nám poskytuje sadu řídicích struktur, které můžeme použít v našich programech, pomocí dobře známých -li zvládnout podmínky a zatímco, opakovat Y pro pro iterační smyčky, kde kromě opakovat který má explicitní terminátor až do a ostatní končí na konec.
Jako ve většině programovacích jazyků deklarace -li zkontroluje podmínku a provede část pak nebo část jiný, kde druhý může být volitelný, podívejme se na sadu těchto podmínek, jak je vidět v našich programech:
pokud var1 <0 pak var1 = 0 konec, pokud var1 max. řádky, pak show () řádky = 0 konecZde máme tři typy operací, základní s pak, pomocí return k vrácení hodnoty podle podmínky a o něco úplnějšího kusu kódu, který volá funkci. Kromě toho můžeme psát -li vnořené pomocí jinak, což nás ušetří od používání více končí, pojďme se podívat, jak to vypadá:
pokud operace == " +" pak výsledek = a + b elseif operace == " -" pak výsledek = a - b elseif operace == " *" pak výsledek = a * b elseif operace == "/" pak výsledek = a / b else chyba ("Neplatná operace") konecJe důležité poznamenat, že to je nejen optimálnější, ale také nezbytné, protože Lua nemá deklarace typu přepínač takže tento typ vnořených podmínek bude v našich programech zcela běžný.
Stejně jako v jiných jazycích, Lua nejprve zhodnoťte stav zatímco, pokud je podmínka nepravdivá, smyčka končí a jinak jsou spuštěny následující řádky kódu a proces se opakuje, dokud není podmínka nepravdivá, podívejme se na jednoduchý příklad, který to ilustruje:
lokální i = 1, zatímco var1 [i] tiskne (var1 [i]) i = i + 1 konec
Toto prohlášení na rozdíl od zatímco umožňuje nám opakovat kód uvnitř podmínky, dokud není pravdivý, kde i tento kód lze provést alespoň jednou, protože vyhodnocení podmínky se provádí na konci, podívejme se na příklad:
opakujte řádek = os.read (), dokud řádek ~ = "" nevytiskne (řádek)
Pokud jde o iterační cykly pro, Lua má dvě varianty, pro číselné a generické pro. Podívejme se na syntaxi číslice pro:
pro var = exp1, exp2, exp3 do konceTato smyčka spustí něco pro každou hodnotu var z exp1 až do exp2 použitím exp3 jako hodnotu pro zvýšení varu nebo jeho snížení, pokud ji nezahrneme Lua standardně předpokládá, že jde jeden po druhém, podívejme se na podrobnější příklad těchto cyklů:
pro var = 1, f (x) do tisku (var) konec pro var2 = 10,1, -1 do tisku (var2) konecJak vidíme, jeho aplikace je poměrně jednoduchá a umožňuje nám implementovat užitečné iterační cykly do našich programů, podívejme se nyní na syntaxi generické pro:
pro i, var v ipairs (pole) do print (var) endTento cyklus používá funkci, kterou nám poskytuje Lua volání dvojice, což je iterátor polí, kde pro každou iteraci i vezmu index, zatímco var získá hodnotu spojenou s tímto indexem.
Jak vidíme prohlášení uvnitř Lua Oni se příliš neliší od ostatních jazyků, nicméně jazyk dodává tu další jednoduchost, která nám dává mnohem rychlejší učení se jeho syntaxi a mnohem efektivnější použití. Tímto jsme dokončili tento tutoriál, kde jsme se naučili přiřazení a řídicí struktury uvnitř Lua, čímž se přidává další vrstva znalostí, pokud jde o tento jednoduchý, ale silný jazyk.