hlmod.hu
https://hlmod.hu/

AmxModX Alapozó 03. - Típusok, változók, konstansok
https://hlmod.hu/viewtopic.php?f=55&t=3404
Oldal: 1 / 3

Szerző:  Metal [ 2012.02.11. 23:03 ]
Hozzászólás témája:  AmxModX Alapozó 03. - Típusok, változók, konstansok

Típusok, változók, konstansok

Mindenekelőtt definiálom (valahogy) a változót, mint fogalmat: Olyan objektum, ami képes egy adott típusú objektumot tárolni. Konyhanyelvi példa: a garázs képes autót tárolni, de hajót nem. Itt a változó típusa az autók, értékei lehetnek a különbözőmárkájú autók (Lada, Ferrari, BMW). A nyelvben leginkább a szám típus létezik, ekkor a szám típusú változók csak számokat képesek tárolni.

Az AMX Mod X-ban minden felhasznált névről meg kell mondanunk, hogy mi az amit képvisel, tudatnunk kell a fordítóprogrammal a típusát. A Pawn nyelv cellákat foglal le, így minden típus egyenlő helyet foglal le a memóriában: 32 bites rendszernél ez 4 byte, 64 bites rendszernél ez 8 byte. Ennek ellenére megkülönböztetünk 3 típust.

Integer típus
Ez az alapértelmezett típus, ami számokat és karaktereket képes tárolni. Új integer típusú változót a new kulcsszóval lehet létrehozni:
Kód:
new a            // Létrehoz egy üres "a" nevu változót

new b=5          // Deklarálja a "b" nevu változót és kezdeti értéket is ad neki (jelen esteben 5-öt)

new c=5.0        // Ez érvénytelen értékadás, mivel lebegőpontos számot akarunk értékül adni

new d="hello"    // "hello" nem szám, így invalid.

new e='A'       // Eltárolja az A betűt (ezt számként teszi, bővebb info a stringeknél)


// Lehetőség van egy sorban több változót deklarálni
Kód:
new e,f,g,h

new x=7, y=3

new z = 1_000_000 // Nagyobb számoknál a könnyebb olvashatóság végett biztosítja az ilyen jellegu számok megadását.


Float típus
A lebegopontos számok ábrázolására szolgál. Hasonlóan a new kulcsszóval hozzuk létre, de a változó elé még feltüntetjük a típusát. Ezt a Float: beírásával tehetjük meg.

Kód:
new Float:a            // "a" nevu Float típus deklarálása érték nélkül.

new Float:b=5.3        // „b” változó deklarálása 5.3as értékkel

new Float:c=5          // Ez helyes kód, de a fordító Warning-ot dob rá.

new Float:d="hello"    // "hello" nem lebegopontos szám, így invalid.


Az alábbiakat is érdemes megfigyelni:
Kód:
// A float(n) egy függvény, argumentuma egy szám, és a visszatérési értéke egy Float típsú szám. (pl float(5) => 5.0 az eredmény)

new Float:var = float(5)

new Float:var2 = 5.0    

new Float:var3 = 1.0*5

new var4 = floatround(5.0)    

// Megjegyzés: A floatround(n) egy függvény, ami az n Lebegopontos számot sima számmá alakítja. (floatround(5.0) => 5)


Boolean
Az utolsó típusunk a Boolean típus, ami két értéket vehet fel: igaz vagy hamis (true/false). A változó elé - mint a Floatnál - feltüntetjük a típusát: bool
Kód:
new bool:On        // Deklarálja az ON változót, aminek alapértelmezetten false az értéke

new bool:xyz=true      // xyz deklarálva true értékkel.


Konstansok
Konstansoknak azokat a változókat nevezzük, amelyeknek pontosan egyszer a definícióban adhatunk értéket (ekkor kötelező), és a new kulcsszó után írt const típusminősítővel jelezzük:
pl:
Kód:
new const Float:PI=3.14

new const alma  // Hibás, nincs kezdőérték

Szerző:  Metal [ 2012.02.15. 11:27 ]
Hozzászólás témája:  Re: AmxModX Alapozó 03. - Típusok, változók, konstansok

Up!

Szerző:  kiki [ 2012.02.16. 15:05 ]
Hozzászólás témája:  Re: AmxModX Alapozó 03. - Típusok, változók, konstansok

a konstansokat magyarázd már el bővebben, nem nagyon értem.

Szerző:  Silent [ 2012.02.16. 15:09 ]
Hozzászólás témája:  Re: AmxModX Alapozó 03. - Típusok, változók, konstansok

kiki írta:
a konstansokat magyarázd már el bővebben, nem nagyon értem.


Egyetértek.

Szerző:  Metal [ 2012.02.16. 15:10 ]
Hozzászólás témája:  Re: AmxModX Alapozó 03. - Típusok, változók, konstansok

"Konstansoknak azokat a változókat nevezzük, amelyeknek pontosan egyszera definícióban adhatunk értéket (ekkor kötelező), és a new kulcsszó után írt const típusminősítővel jelezzük:"

Ebből következik, hogy a konstans változó értékei nem módosíthatóak, és a változók deklarálásakor kötelező jelleggel meg kell határozni az értékét.
Emiatt a példákban az első példa helyes, mert a létrehozáskor értéket kap, míg a második nem fordul le, mivel létrehozzuk, de nem kap értéket.

kiki írta:
a konstansokat magyarázd már el bővebben, nem nagyon értem.

Szerző:  kiki [ 2012.02.16. 15:12 ]
Hozzászólás témája:  Re: AmxModX Alapozó 03. - Típusok, változók, konstansok

Szóval

Kód:
  1.  

  2. //Ennek az értékét nem lehet késöbb változtatni

  3. new const Float:PI=3.14

  4. //Ennek meg lehet

  5. new Float:PI=3.14

Szerző:  Metal [ 2012.02.16. 15:25 ]
Hozzászólás témája:  Re: AmxModX Alapozó 03. - Típusok, változók, konstansok

Igen

kiki írta:
Szóval

Kód:
  1.  

  2. //Ennek az értékét nem lehet késöbb változtatni

  3. new const Float:PI=3.14

  4. //Ennek meg lehet

  5. new Float:PI=3.14

Szerző:  Roal [ 2012.03.10. 19:57 ]
Hozzászólás témája:  Re: AmxModX Alapozó 03. - Típusok, változók, konstansok

Üdv!
A float típusnál a "Az alábbiak is érdemes megfigyelni" sor rosszul sikerült!

Szerző:  IrOn [ 2012.03.10. 19:59 ]
Hozzászólás témája:  Re: AmxModX Alapozó 03. - Típusok, változók, konstansok

Roal írta:
Üdv!
A float típusnál a "Az alábbiak is érdemes megfigyelni" sor rosszul sikerült!

javítottam neki

Szerző:  Metal [ 2012.03.11. 10:40 ]
Hozzászólás témája:  Re: AmxModX Alapozó 03. - Típusok, változók, konstansok

Kedves :)
IrOn123 írta:
Roal írta:
Üdv!
A float típusnál a "Az alábbiak is érdemes megfigyelni" sor rosszul sikerült!

javítottam neki

Oldal: 1 / 3 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/