Portál AbcLinuxu, 6. listopadu 2025 15:34
Ternarni operator jsem nahrazoval fintou
cond and true_val or false_val
(cond and [true_val] or [false_val])[0]
Viac v diveintopython.
if cond x = 1 else x = 2 end
xxx = yyy if zzz. Nevím, zda je v Ruby i nějaká else část, to už bych asi zas tak nadšený nebyl, ale je pravda, co se tvrdí v článku: je to mnohem bližší přirozenému uvažování.
O chvilku později… pravda, mluvíte vlastně o čtení. Je fakt, že podmínku utopenou kdesi za výrazem můžu snadno přehlídnout… teda mohl bych, kdybych nepoužíval Ruby akorát na skriptíky zvící max. desítek řádek. Ale něco na tom bude.
(cond)?(x=1):(x=2):)
x = if cond then 1 else 2 end
Je to jako v Lispu, všechno vrací hodnotu a jestli ji člověk použije nebo ne, je jen na něm. Myslím, že se to netýká jen if.
A prvky jazyka jsou ortogonální a dají se kombinovat. Aspoň je to konzistentní a logické. Ať se pythonisté třeba vztekají a stavějí na hlavu.
When in Rome, do as the Romans do.
(bla (if nil 0 1))…ale každému, jak je libo.
Ne, v bezzávorkovém jazyku, jako je Ruby, je lepší na pouhé dvě hodnoty a jednoduchou podmínku použít podmíněný výraz, páč ty dva znaky znamenají méně balastu, ale ne všechno je takhle jednoduché, že.
„ak mas normalny editor, lahko vidis kde ti zatvorky zacinaju/koncia a tie slova su naozaj redundantne a zvysuju neprehladnost“Díky, přidám si Tě na seznam obáhjců Lispu, tohle pořád tvrdím.
print "OK" if cond, protože else část je povinná. takže člověka hned napadne print "OK" if cond else pass, což je špatně, protože se nerozhoduje o provedení příkazu print, ale o jeho argumentu, což mi nepřijde vždy úplně intuitivní. Takže jestli tomu rozumím, touto novou syntaxí ekvivalent if cond: print "OK" zapsat nelze .. (?)
print "OK" není na tomto místě povolen (Python v tomto ohledu dodržuje algolovské rozdělení příkazů a výrazů). Je pravda, že část else by mohla být nepovinná a fungovat by to mohlo asi takto. Nechce to někdo navrhnout?
a = 5 if cond else NoneNo a ten
if cond: print "OK" napsat jde i ve 2.5
print "OK" if True else None ... já tam pořád cpal ham = print .... Ale právě ta větev else None tam být musí, přitom zbytečně
. Takový krásný překlep ...
, aspon o zadnych nevim)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.