|
PremennéPremenné
Premennú môžete vytvoriť tak, že do príkazového riadku zadáte jej typ, meno (symbolické označenie). Môžete jej zároveň priradiť aj hodnotu. Hodnota môže byť skalár alebo výraz. Všeobecne:
typ meno_premennej [= výraz]
V nasledujúcej tabuľke je prehľad základných typov premenných.
Typ | Význam | Príklad |
int | celé číslo | 5, 32, -45, 1000 |
float | reálne číslo (dvojitá presnosť) | -5.68, 58924.55456, 10.0 |
str | reťazec znakov | pudlík, 5.8, tráva |
Ak ste premennú vytvorili, ale nepriradili ste jej žiadnu hodnotu, môžete tak urobiť pomocou operátora = . Pozrite si nasledujúce príklady:
genesis #3 >float pi //deklarácia premennej typu
float
genesis #4 > int num = 6 //deklarácia a inicializácia premennej typu int
genesis #5 > float fstr = "6.3" //deklarácia a inicializácia premennej typu float
genesis #6 > pi = 3.1415 //priradenie hodnoty premennej pi
genesis #7 > str ret = reťazec" //deklarácia a inicializácia premennej typu reťazec
Jazyk GeNeSiS rozlišuje malé a veľké písmená tzn, že Pi nie je tá istá premenná ako pi .
Získať hodnotu premennej môžete tak, že ju uzavriete do zložených zátvoriek ({} ). Príklad:
genesis #8 > echo { pi }
3.1415
genesis #9 > echo { pi * 2 }
6.283
Premenná deklarovaná vo vnútri funkcie je lokálna, inak je globálna. Rutiny na prácu s globálnymi premennými nájdete v nasledujúcej tabuľke:
Rutina | Popis rutiny |
addglobal | deklaruje globálnu premennú, pričom jej meno môže byť obsah inej premennej |
getglobal | vráti hodnotu premennej, pričom meno premennej môže byť obsah inej premennej |
setglobal | nastaví hodnotu premennej, pričom meno premennej môže byť obsah inej premennej |
listglobals | vylistuje zoznam globálnych premenných |
Podobne ako je to v iných skriptovacích jazykoch, dokáže GeNeSiS automaticky pretypovať premennú, pokiaľ je to nutné. Ak pretypovanie zlyhá, GeNeSiS zahlási chybu a použije "náhradnú" hodnotu. Pozrite si nasledujúce príklady:
genesis #10 > int i = 4
genesis #11 > int j = 3
genesis #12 > float x = 2.5
genesis #13 > str str_x = "2.5"
genesis #14 > str s = "pudlik"
genesis #15 > echo { i / j }
1
genesis #16 > echo { i / x }
1.6
genesis #17 > echo { i / str_x }
1.6
genesis #18 > echo { x / s }
** Error - CastToFloat: Error casting 'pudlik', using 0.0
inf
|