Tartalomjegyzék

< Lua

Lua nyelv

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

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)