hlmod.hu
https://hlmod.hu/

new decl
https://hlmod.hu/viewtopic.php?f=44&t=7020
Oldal: 1 / 2

Szerző:  HunGamer [ 2013.01.04. 16:16 ]
Hozzászólás témája:  new decl

Sziasztok

Annyi lenne csak a kérdésem, hogy mi a különbség a "new" és a "decl" között? Mire, hol, mikor kell használni?

Ha már itt tartunk akkor a static-ról is informálna valaki?

Szerző:  IrOn [ 2013.01.04. 16:35 ]
Hozzászólás témája:  Re: new decl

HunGamer írta:
Sziasztok

Annyi lenne csak a kérdésem, hogy mi a különbség a "new" és a "decl" között? Mire, hol, mikor kell használni?

Ha már itt tartunk akkor a static-ról is informálna valaki?

static asszem az, hogy az értéke később nem változhat, csak akkor amikor megadod

Szerző:  Metal [ 2013.01.07. 14:37 ]
Hozzászólás témája:  Re: new decl

Wrong, az a constans

Vannak eltérések a prognyelvekben, de lényegében ugyanaz. A static változó ugyanolyan változó, de értékét megőrzi, nem tűnik el a memóriából, emiatt függvényeben szokták használni. (Mivel a PHPban nincs OO, ezért az alapján egy példát írok most le, szerintem működik):

Kód:
public fgvem()
{
    static alma=0;
    alma++;
}


Ez konkrétan "nem csinál látható" dolgot, de a háttérben ez játszik le, ha az alábbi sorokat tartalmazza a kódod:

Kód:
fgvem();
fgvem();


Első híváskor beállítódik az alma változó értéke 0ra. (A fordító minden fordításkor lefoglalja a static-us változókat, s ellátja őket def értékekkel, de az első értékadáskor (ami nem új példányosítása) felülcsapja.
Tehát
1. függvényhívás végén alma 1 lesz
2. fgvhíváskor: alma 2 lesz.

Ha valakinek van ideje, próbálja ki, hátha mégsem így működik pawnban :)

IrOn123 írta:
HunGamer írta:
Sziasztok

Annyi lenne csak a kérdésem, hogy mi a különbség a "new" és a "decl" között? Mire, hol, mikor kell használni?

Ha már itt tartunk akkor a static-ról is informálna valaki?

static asszem az, hogy az értéke később nem változhat, csak akkor amikor megadod

Szerző:  HunGamer [ 2013.01.07. 14:44 ]
Hozzászólás témája:  Re: new decl

Köszönöm:)
Azt még el tudnád magyarázni, hogy mi a különbség a "new" és a "decl" között?

Szerző:  Metal [ 2013.01.08. 00:49 ]
Hozzászólás témája:  Re: new decl

Souremodhoz még nem értek.

Szerző:  Silent [ 2013.01.15. 15:42 ]
Hozzászólás témája:  Re: new decl

Metal írta:
Souremodhoz még nem értek.


Még szócska befigyelt. :DD

Egyébként:

New
Kód:
new String:example[4500];


Létrejön az "example" nevű(címkéjű) tömb és minden egyes elem kap egy 0 kezdési értéket, amire igazából nincs(vagy nem mindig van) szükséged. Ez azért nem kis folyamat, hiszen 4500x állítja be 0-ra, ami önmagában is sok, pláne egy hosszasabb ciklusban.

Kód:
decl String:example[4500];


Itt viszont nem kap kezdési értéket, sok-sok memóriát spórolva.

Szerző:  Metal [ 2013.01.15. 16:04 ]
Hozzászólás témája:  Re: new decl

Hihi, ez mókás :) Nincs inicialzálás :)
Annyit javítanék, hogy Stringnél NULL lesz az értéke, mintsem 0 (Másképp fogalmazva: üres string (""))

Szerző:  HunGamer [ 2013.01.15. 20:47 ]
Hozzászólás témája:  Re: new decl

Szóval a kód szempontjából mindegy, hogy melyiket használom, mert ugyanúgy fog működni?

Szerző:  Metal [ 2013.01.15. 21:51 ]
Hozzászólás témája:  Re: new decl

Természetesen nem. Lehet hogy a "felületen", az eredmény, amit látsz az lesz, de optimalizálás szempontjából nagyon nem mindegy.

HunGamer írta:
Szóval a kód szempontjából mindegy, hogy melyiket használom, mert ugyanúgy fog működni?

Szerző:  Silent [ 2013.01.16. 06:02 ]
Hozzászólás témája:  Re: new decl

Haladóknak decl, kezdőknek inkább new. Ha elfelejtesz értéket adni a decl-nek, lehet h a fordító elfogadja, de ha kiírod pl chatre, tuti kifagy.

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