GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: bbTamas - 2013. augusztus 20. - 01:58:06

Cím: foreach és az iterátor használata, pontosan mi a légyege?
Írta: bbTamas - 2013. augusztus 20. - 01:58:06
foreach legyét probálom megérteni, de valahogy nem tudom felfogni az igazi légyegét.
Már az eleje sem tiszta:
Magyar leírásban így van leírva az elsõ példa:
 
foreach(Player, i) 
{
    printf( \"Játékos[%d] csatlakozva van\", i );   
}

 
Viszont angol forumon így van írva, és szinte minden publikált szkripten így látom foreach (new i : Player):
 
foreach (new i : Player)
{
    printf(\"Player %d is connected\", i);
}

 
Van külömbség a kettõ között? Szerintem nincs. Eddig még nagyjából értem, hogy csak az éppen online lévõ játékosokat veszi figyelembe.
Viszont ezt a \"iterátorok\" mûködésérõl semmi fogalmam nincs.Végigolvastam vagy 100×szor de fejben nem tudom összerakni.
Annyit értettem meg, hogy játékosra nem kell létrehozni, viszont másra igen, és azért kell létrehozni mert ez mutat az \'adatthalmazra\'.
Cím: foreach és az iterátor használata, pontosan mi a légyege?
Írta: Zsolesszka - 2013. augusztus 20. - 08:33:17
Pedig leírtad a lényegét. (nem légyegét :D)
Alapjában véve egy for ciklus, viszont nem csak egymás utáni értékeket futtat le.
Ha megadod neki a következõ számsort 2, 6, 12, 23 akkor 4 szer fut le és ezeket az értékeket adja a változónak, egy sima for ciklussal ezt nem tudod megvalósítani.
A játékosok illetve az npc-re azért nem kell létrehoznod mert ezek már létre lettek hozva a függvénykönyvtárban, így már csak alkalmaznod kell, másra azért kell létrehoznod mert nincs létrehozva, sajnos a készítõje nem tudja hogy te még mire szeretnéd használni így nem hozott létre több Iterator-t a Player, Bot, Character,-en kívül.
 
new
       Iterator:Player<MAX_PLAYERS>;
new
       Iterator:Bot<MAX_PLAYERS>,
       Iterator:Character<MAX_PLAYERS>;

 
Szerintem nincs különbség a kettõ közt, mindegy melyik megoldást használod.
Tehát gyakorlatilag a lényege annyi hogy egy olyan for ciklust hozhatsz vele létre ami képes olyan ismétlõdéssel mûködni, ami nem csak meghatározott értéknöveléssel fut le (1++), hanem olyan értékekkel amiket megadsz neki.
Cím: foreach és az iterátor használata, pontosan mi a légyege?
Írta: bbTamas - 2013. augusztus 20. - 13:08:29
Köszönöm ɐʞzssǝlosz így már értem, hogyan mûködik, ment a plusz a segítségedért. :)