Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu. Zároveň využij slevovou akci až 30 % zdarma při nákupu e-learningu - Více informací.
discount 30 + hiring
Avatar
Eldest
Tvůrce
Avatar
Eldest:26.10.2012 16:42

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
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Eldest
David Jančík:26.10.2012 16:47

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
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Eldest
Tvůrce
Avatar
Odpovídá na David Jančík
Eldest:26.10.2012 16:48

Ok, díky moc.

 
Nahoru Odpovědět
26.10.2012 16:48
Avatar
matesax
Tvůrce
Avatar
matesax:26.10.2012 16:54

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
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:26.10.2012 16:58

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
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Jančík
matesax:26.10.2012 17:02
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:26.10.2012 17:09

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
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Eldest
Kit:26.10.2012 17:20

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.