Avatar
Eldest
Redaktor
Avatar
Eldest:

Může mi někdo vysvětlit co toto je a co to děla?

((x % 11 != 10) ? 2 : 1)
 
Odpovědět 26.10.2012 16:42
Avatar
Odpovídá na Eldest
David Jančík [sczdavos]:

To je podmínka zapsaná na jeden řádek.

if (x % 11 != 10)
   return 2;
else
   return 1;

Používá se na zkrácení zápisu. Né vždy se to ale hodí, kvůli přehlednosti.

Nahoru Odpovědět 26.10.2012 16:47
Čím více času dostaneš, tím méně ho máš.
Avatar
matesax
Redaktor
Avatar
matesax:

Stačilo by:

x % 11 == 10 ? 1 : 2

Nesouhlasím - toto přehlednost naopak zvyšuje - navíc se to dá odřádkovat. Spíše je kontraindikací, že se to dá použít jen při nastavování hodnoty. Maximálně vybírání akce - ale to už bych použil if/else. Jmenuje se to ternární operátor...

Editováno 26.10.2012 16:57
 
Nahoru Odpovědět 26.10.2012 16:54
Avatar
Odpovídá na matesax
David Jančík [sczdavos]:

Napsal jsem "Né vždy se to hodí". Protože v určitých situacích ti to kód pěkně znepřehlední, musíš si umět vybrat kam to dát. Ty aby sis zase nerýpnul že :)
Jo ternární operátor, sem si nemohl vzpomenout.

Nahoru Odpovědět 26.10.2012 16:58
Čím více času dostaneš, tím méně ho máš.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
matesax:
x % 11 == 10 ?

1 :

2
if (x % 11 == 10)
ss = 1;
else
ss = 2;

To přeci bude stejné - ne? Ať uděláš cokoliv...

Editováno 26.10.2012 17:03
 
Nahoru Odpovědět 26.10.2012 17:02
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

To rýpaní ohledně délky kódu je už opravdu trapné. Co kdybys tam měl třeba funkci s nějakými parametry? Není vhodné dát 2 volání funkce s několika parametry a ještě podmínku na jeden řádek.

Nahoru Odpovědět 26.10.2012 17:09
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Eldest
Kit:

Ternární operátor se hodí zejména v anonymních funkcích, ve kterých se klasické větvení nedá použít. Na rozdíl od větvení je výsledkem nějaká hodnota.

Nahoru Odpovědět 26.10.2012 17:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.