AstroLang/docs/versioned_docs/version-1.0.0/langfunctions.md

301 lines
No EOL
4.7 KiB
Markdown

---
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
```
---
## Try/Catch (Próbáld ki)
Kulcsszó: `piszolj, csecs`
Használat: `piszolj {amit ki kell próbálni} csecs (error) {ha hiba}`
:::warning
A catch rész itt nem rakható bárhova, nem úgy mint az if-nél!
:::
Példa:
```asl title="example.asl"
piszolj {
gethelj test = szaft"a"szaft+1
} csecs (e) {
//Ez akkor fog lefutni, mikor hiba van
ugass(e)
}
```