Tartalomjegyzék
Lua nyelv
- Szerző: Sallai András
- Copyright © Sallai András, 2011, 2012
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
Bevezetés
Kevés memória igényű, több paradigmás (programozási elvű), könnyű szintaktikával rendelkező script alapú programozási nyelv.
Kivitel
print "Helló Világ"
print("Helló Világ")
print("alma", 35)
Különleges karakterek
\a | csnegőhang |
\b | back space |
\f | lapdobás |
\n | új sor |
\r | kocsi vissza |
\t | tabulátor |
\v | vertikális tabulátor |
\\ | backslash |
\" | idézőjel |
\' | aposztróf |
\[ | bal szögletes zárójel |
\] | jobb szögletes zárójel |
Változó használat
a = 3 print("a: ", a)
a = 3 b = 5 c = a + b print(c)
Formázott kivitel
Szélesség
print(string.format("%20d", 1250000))
Vezető nullák
print(string.format("%020d", 1250000))
Tizedesjegyek száma
print(string.format("%.2d", 1.250000))
Matematikai függvények
a = math.abs(-1) print("a: ", a)
a = math.pi print("pi értéke: ", a)
a = math.pow(2,3) print("2 a harmadik hatványon: ", a)
a = math.sqrt(9) print("gyök: ", a)
arad = math.rad(1) a = math.sin(arad) print("gyök: ", a)
math.randomseed(os.time()) a = math.random(3) print("1-től -- 3-ig véletlenszám: ", a)
Operátrok
Logikai
- and
- or
- not
Konvertálás
a = tonumber("10")
Bevitel
Szöveg beolvasása:
nev = io.stdin:read()
Egy szám beolvasása:
kor = tonumber(io.stdin:read())
Várunk egy billentyűnyomsára:
io.read();
Szelekció
Egyágú szelekció:
if 6>3 then print "Nagyobb" end
Kétágú szelekció:
if 6>9 then print "Nagyobb" else print "Kisebb" end
Több ágú szelekció:
if a == 1 then print "Első" elseif a == 2 then print "Második" elseif a == 3 then print "Harmadik" else print "Más" end
Iteráció
Növekményes ciklus
Egytől tízig kiírjuk a számokat:
for i = 1, 10 do print("Hi") end
Amíg ciklus
a = 1 while a<=10 do print(a) a = a + 1 end
Táblák
Létrehozás
Üres tábla:
table1 = {}
Tábla kezdőértékkel:
table1 = {3, 4, 8, 9, 1}
Tábla feltöltése
table1 = {} table.insert(table1, "alma") table.insert(table1, "körte") table.insert(table1, "szilva")
Elem törlése
Utolsó elem törlése:
table1 = {3, 4, 8, 9, 1} table.remove(table1)
Az első elem törlése:
table.remove(table1, 1)
Az 1 a pozíció. Helyette más értékek is megadhatók.
Tábla bejárása
for i in table1 do print(table1[i]) end
Szövegkezelés
Konkatenálás
gy = "alma" cs = "eszik" tev = gy .. cs
A szöveg mérete bytokban:
s = "korte" print("Hossz: ", string.len(s))
-- Hányadik helytől s = "kortefa" print("Rész: ", string.sub(s,4))
Az eredmény: tefa
-- Hányadik helytől, hányadik helyig s = "kortefa" print("Rész: ", string.sub(s,1,3))
Az eredmény: kor
Keresés a szövegben:
szoveg = "td*4" a = string.find(szoveg, "*") if a == nil then print("egyenlő") else print("nem egyenlő") end -- Kimenet: 3 print(a)
Ha a keresett szöveg nem található, akkor nil értéket kapunk, amit egyszerű egyenlőség vizsgálattal kapunk.
Fájlkezelés
fp = io.open("adat.txt", "r") local x = fp:read("*a") print(x) fp:close()
Függvények/Eljárások
A függvény meg kell előzze a hívás helyét.
function kiir() print("Hello") end kiir() io.read()
Bemenő paraméterek visszaadott paraméter:
function kiir(a, b) return a + b end print(kiir(3, 4)) io.read()
Egyéb
Környezeti változó lekérdezése
utvonal = os.getenv("PATH")
Operációs rendszerbeli parancs végrehajtása:
os.execute("dir")
siker = os.execute("dir") print(siker)