Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: V01D poslato Novembar 28, 2021, 16:22:24 POSLE PODNE

Naslov: Ternary Operator
Poruka od: V01D poslato Novembar 28, 2021, 16:22:24 POSLE PODNE
TERNARY OPERATOR UPOTREBA

Pravim ovaj tutorial zato sto ljudi idalje ne znaju zasto se koristi niti da uopste postoji ternary operator. Trudio sam se da objasnim najbanalnije moguce i najosnovnije tako da kada pocetnici vide da neko ovo koriste, ne pomisle da je neka crna magija u pitanju..

[pawn]new bool:isPlayerHelper[MAX_PLAYERS]; //Uzmimo za primer jednu bool promenljivu

//Negde u skripti joj dodelimo vrednost true ili false
isPlayerHelper[playerid] = true;


//Zatim primer ternary operatora mozemo videti u par primera :

CMD:jesamlihelper(playerid) { //Banalan primer u komandi

   SendClientMessage(playerid, -1, isPlayerHelper[playerid] ? "Jeste Helper" : "Nije helper");

   //Uzimamo primer SendClientMessage koja ima 3 argumenta

   // playerid -> ID igraca kome saljemo poruku
   // boja -> U ovom slucaju -1 ( BELA )
   // string -> Poruka koja se salje

   return 1;
}[/pawn]

E sada, u primeru iznad, zamenili smo argument string iz SendClientMessage funckije i iskoristili ternary operator u istoj

U prevodu proverili smo vrednost promenljive isPlayerHelper[playerid] i na osnovu vrednosti iste poslali odredjenu poruku

Ternary Operator je zapravo kraca verzija if/else provere, i moze dosta da skrati posao

Kako bi ovaj primer izgledao sa IF/ELSE ?

[pawn]CMD:jesamlihelper(playerid) { //Banalan primer u komandi

   if(isPlayerHelper[playerid]) {
      SendClientMessage(playerid, -1, "Jeste Helper");
   }
   else {
      SendClientMessage(playerid, -1, "Nije helper");
   }

   return 1;
}[/pawn]


Sta se zapravo desava?

Ternary operator funkcionise tako sto prvo postavimo odredjeni uslov, a zatim sta ce se desiti ako je uslov ispunjen ili nije ispunjen

USLOV ? akoJeIspunjen : akoNijeIspunjen

Takodje, ternary operator se moze koristiti u raznim slucajevima, takodje jos jedan banalniji primer sa brojevima :

[pawn]new a = 3,
   b = 5;

new rezultat;

//Sada cemo da proverimo da li su a i b jednaki, ako jesu pomozicemo ih, ako nisu sabracemo ih i staviti vrednost u promenljivu rezultat

rezultat = (a == b) ? a * b : a + b;

//Ovde bi promenljiva rezultat imala vrednost 8[/pawn]

Nadam se da je sada malo jasnije cemu ovo sve sluzi, zasto se koristi i koliko je zapravo korisno za upotrebu

Ukoliko nekome bilo sta iz ovog tutoriala nije jasno, slobodno moze da pita
Naslov: Odg: Ternary Operator
Poruka od: Muma poslato Novembar 28, 2021, 18:58:40 POSLE PODNE
Ima već tutorijal https://balkan-samp.com/forum/index.php?topic=130563.0 ali ajde može i 2 :D
Naslov: Odg: Ternary Operator
Poruka od: V01D poslato Novembar 29, 2021, 16:06:57 POSLE PODNE
Citat: мυмα poslato Novembar 28, 2021, 18:58:40 POSLE PODNE
Ima već tutorijal https://balkan-samp.com/forum/index.php?topic=130563.0 ali ajde može i 2 :D

Dzaba, niko nece da gugla niti pretrazuje forum, a kada im se napise u razgovor pawn skriptanja kao da si im pokazao spansko selo
Naslov: Odg: Ternary Operator
Poruka od: Muma poslato Novembar 29, 2021, 16:39:59 POSLE PODNE
A njihov problem, ako hoće nek pročitaju, 5min bukv