Ternary Operator

Započeo V01D, Novembar 28, 2021, 16:22:24 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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


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

A njihov problem, ako hoće nek pročitaju, 5min bukv