PDA

Volledige versie bekijken : [Tip] Uitleg van 'check ? true : false'


SaphuA
%Europe/Berlin %337 %2005, 09:05
Hey luitjes,
Ik zag laatst ergens in een post iets over de 'check ? true : false'-methode (ben de naam evne kwijt, als iemand die weet dan hoor ik het graag). En kwam erachter dat er maar weinig mensen zijn die weten hoe die werkt.

In feite is deze methode bedoeld als een snelle return-functie. Wat het doet is een waarde controleren, en aan de hand daar van iets retourneren.

Even een voorbeeld:
var x = 1;
if (x) {
trace("Jaaah!");
} else {
trace("Jeeeh!");
}
Is hetzelfde als:
var x = 1;
trace(x ? "Jaaah!" : "Neeeh!";)
Zoals je ziet is dit zeer bruikbaar, vooral als je in je code erg veel losse if-else contrcuties moet gebruiken. Een ander voorbeeld, om te kijken hoe handig het eigenlijk is:
var geslacht = "M"; // (M, V)
var speed = (geslacht == "M" ? 50 : 80);
Wat het dus doet aan de hand van de variable geslacht een waarde retourneren, deze waarde wordt meteen opgeslagen in een andere variable. Zo hoef je niet een apparte if-else constructie te gebruiken om dit op te lossen.

Ik zal later nog een ander voorbeeld posten, heb nu even les ;)
~Sph

gbolssens
%Europe/Berlin %386 %2005, 10:16
Ik vind deze construct vooral handig voor een snelle Bool toggle:

mijnBool = mijnBool ? false : true;

alst'ie false is wordt 'ie true en andersom.
handig om bvb sound on/off button te programmeren ofzo.

greetz, GB

Roenes
%Europe/Berlin %446 %2005, 11:42
voor die boolean toggle gebruik je meestal:
mijnbool = !mijnbool;En jah, die ? methode is erg handig. Vaak gebruik ik em bij waardes toekennen aan vars. Zo'n uitgeschreven if-else vind ik dan maar overzichtelijk als het ook zo kan :)

SaphuA
%Europe/Berlin %598 %2005, 15:22
voor die boolean toggle gebruik je meestal:
mijnbool = !mijnbool;
Inderdaad :) Dan is zelfs de ?-methode omslachtig..

En jah, die ? methode is erg handig. Vaak gebruik ik em bij waardes toekennen aan vars. Zo'n uitgeschreven if-else vind ik dan maar overzichtelijk als het ook zo kan :)
Yup, je kunt er best een hoop dingen mee vervangen waardoor je code vaak een stuk minder wordt. Daarom leek het me wel handig om het eens even de wereld in te brengen ;)

Iemand ondertussen al een naam gevonden? :)

Voetsjoeba
%Europe/Berlin %672 %2005, 17:08
Deze constructie noemt de 'tertiary operator', en wordt vooral gebruikt om simpele, inline if statements te doen. Bv:


var x = (y%2 == 0 ? 5 : 3);


Anders zou je daar zo'n hele langdradige constructie moeten doen met if block, else block etc. Zo kan het veel sneller.

SaphuA
%Europe/Berlin %683 %2005, 17:23
Hehe leuke naam :) Bedankt voetsjoeba..

Even een ander voorbeeld, het kan zeer goed simpele random's vervangen:
var geslacht = random(2) ? "M" : "V";

Dauntless
%Europe/Berlin %723 %2005, 18:22
Hehe leuke naam :) Bedankt voetsjoeba..

Even een ander voorbeeld, het kan zeer goed simpele random's vervangen:
var geslacht = random(2) ? "M" : "V";
Buiten dan dat die versie van random() deprecated is:).

Voetsjoeba
%Europe/Berlin %725 %2005, 18:24
Maar wel sneller ;) Maar dat is inderdaad een goed voorbeeld van het gebruik van deze constructie. In plaats van heel die code uit te schrijven kan het zo veel korter. Als je dit gebruikt in projecten die anderen ook gaan gebruiken, zet er dan wel ff commentaar bij. Soms kennen zij deze methode niet, of kunnen ze niet direct goed zien wat er gaande is. Begin deze ook liefst niet te nesten. Dat kan, maar dan wordt het al snel behoorlijk chaotisch.

SaphuA
%Europe/Berlin %749 %2005, 18:59
Buiten dan dat die versie van random() deprecated is:).
MMMWWWWWAAAAAAAARRRRRRGGGGGGGHHHHHHHHHH!!!!!!!! 8)