---
sidebar_position: 3
description: Az Astro Lang fukciói
---

# Nyelvi funkciók

---

## Assignment (Változó beállítás)
Kucsszó: `gethelj`

Használat: `gethelj változó = érték`

Példa:
```asl title="example.asl"
gethelj test = 17
```

---

## Var read (Változó olvasás)
Kucsszó: `-`

Használat: `változó`

Példa:
```asl title="example.asl"
gethelj test = 17
ugass(test)
```

---

## Var update (Változó frissítés)
Kucsszó: `-`

Használat: `változó = érték`

Példa:
```asl title="example.asl"
gethelj test = 17
ugass(test)
test = 18
ugass(test)
```

---

## Function (Funkció)
Kucsszó: `lőcsve`

Használat: `lőcsve változó(változók) {lefutatott kód}`

Példa:
```asl title="example.asl"
lőcsve test(a) {
    //Ez akkor fut le mikor meghívod a funkciót
}
test(8) //így tudsz meghívni egy funkciót, ebben az esetben az "a" 8 lesz
```

---

## If (Ha)
Kulcsszó: `ha geny`

Használat: `ha geny(feltétel) {ha igaz}`

Példa:
```asl title="example.asl"
ha geny(piszv) {
    //Ez akkor fut le, ha a feltétel igaz
    //Ebben az esetben mindig
}
```

---

## Else (Különben)
Kulcsszó: `ha nem geny`

Használat: `ha nem geny {ha hamis}`

Példa:
```asl title="example.asl"
ha geny(nem piszv) {
    //Ez akkor fut le, ha a feltétel igaz
    //Ebben az esetben soha
} ha nem geny {
    //Ez akkor fut le, ha a feltétel hamis
    //Ebben az esetben mindig
}
```

:::tip

Nem kötelező egyből a ha után rakni, a kódban bárhol elfogadható és az előzőleg lefutott if-t veszi figyelembe.

:::

---

## Else if (Különben-Ha)
Kulcsszó: `ha nem geny akkor geny`

Használat: `ha nem geny akkor geny(feltétel) {ha igaz}`

Példa:
```asl title="example.asl"
ha geny(nem piszv) {
    //Ez akkor fut le, ha a feltétel igaz
    //Ebben az esetben soha
} ha nem geny akkor geny(piszv) {
    //Ez akkor fut le, ha az előző if feltétele hamis és a feltétel igaz
    //Ebben az esetben mindig
}
```

:::tip

Nem kötelező egyből a ha után rakni, a kódban bárhol elfogadható és az előzőleg lefutott if-t veszi figyelembe.

:::

---

## While (Amíg)
Kulcsszó: `amíg geny`

Használat: `amíg geny(feltétel) {amíg igaz}`

Példa:
```asl title="example.asl"
amíg geny(piszv) {
    //Ez addig fut le, amíg a feltétel igaz
    //Ebben az esetben örökké fog futni
}
```

---

## For (Változós amíg)
Kulcsszó: `kopva`

Használat: `kopva(beállítás;feltétel;frissítés) {amíg igaz}`

:::info

A beállítás első futás előtt fut le, csak 1 utasítást tartalmazhat.

A frissítés minden futás után fut le, csak 1 utasítást tartalmazhat.

:::

Példa:
```asl title="example.asl"
kopva(gethelj i = 0; i < 10; i = i + 1) {
    //Ez addig fut le, amíg a feltétel igaz
}
```

---

## Break (Törés)
Kulcsszó: `kraf`

Használat: `kraf`

Példa:
```asl title="example.asl"
kopva(gethelj i = 0; i < 10; i = i + 1) {
    kraf //Ez az első futásnál be fogja fejezni az amíg-ot
}
```

---

## Continue (Folytasd)
Kulcsszó: `szard le`

Használat: `szard le`

Példa:
```asl title="example.asl"
kopva(gethelj i = 0; i < 10; i = i + 1) {
    ugass(i)
    szard le
    ugass(78) //Ez soha nem fog lefutni, mert át lesz ugorva
}
```

---

## Return (Funkció visszadása)
Kulcsszó: `reti`

Használat: `reti [változó]`

Példa:
```asl title="example.asl"
lőcsve test(a) {
    reti a
}
gethelj a = test(8) //Az "a" értéke "8" lesz, mert azt adja vissza.
```

---

## Import (Betöltés)
Kulcsszó: `hámozd, be/ba`

Használat: `hámozd változó be/ba`

:::tip

Ez egyből létrehoz egy változót.
Pontos fájlnevet tudsz megadni!

:::

Példa:
```asl title="example.asl"
hámozd test be szaft"test.asl"szaft
```

---

## Table (Tábla)

:::tip

A kulcs bármilyen érték típus lehet, kivéve: funkció, tábla.

:::

### Létrehozás
Használat: `{érték,érték}, {[kulcs]=érték}`

Példa:
```asl title="example.asl"
gethelj a = {1,2,3}
```

### Lekérés
Használat: `tábla[kulcs]`

Példa:
```asl title="example.asl"
gethelj a = {1,2,3}
ugass(a[0]) // 1
```

### Gyors lekérés
Használat: `tábla[kulcs]`

:::warning

Csak a szöveges kulcsokkal működik, viszont több szót is támogat!

:::

Példa:
```asl title="example.asl"
gethelj a = {1,2,3,[szaft"test"szaft]=73}
ugass(a.test) // 73
```

### Beállítás
Használat: `tábla[kulcs] = érték`

Példa:
```asl title="example.asl"
gethelj a = {1,2,3}
ugass(a[0]) // 1
a[0] = 12
ugass(a[0]) // 12
```