Slovíčko kontroverzní se ve zprávičce objevilo nikoli proto, že bych považoval tuto funkci za špatnou, ale proto, že diskuze o jejím začlenění byla dlouhá a divoká. Dle jedné strany je to skvělá vymoženost, druzí tvrdí, že se jazyk zbytečně komplikuje a nabaluje se na něj hromada zbytečností, jen aby se něco měnilo. Stačila chvilka a už i tady pod zprávičkou se našly oba názory. Podobných debat jsou plné internety.
Diskuze o tom, jestli mrož bude, nebo nebude v Pythonu, byla tak vyčerpávající, že Guido van Rossum rezignoval na post benevolentního diktátora: „Now that PEP 572 is done, I don't ever want to have to fight so hard for a PEP and find that so many people despise my decisions.“
Vsak na to kazde rozumnejsi cecko uz pres desetileti hazi warning, a mnohem davneji tusim Ludek Skocovsky (ale mozna se pletu) psal jako best practice "nepiste if (a == NULL), ale if (NULL == a) pro pripad preklepu"
Coz si myslim je dostatecne.
spousta konstrukci stylu while (0 < (i = read(....))) by byla daleko mene prehlednejsi.
ad automaticky break v case - opet, spoustu chyb by to vyresilo, spoustu prace jinde by to pridalo. Konstrukce
switch () {
case 1:
case 2:
some_extra_check();
case 3:
case 4:
do_common_work_1_4();
break;
je v praxi pouzivana dost casto, a obvykle v mistech kde to dava smysl i pro prehlednost.
V C funguje přiřazení jako expression (např zde: https://stackoverflow.com/a/16567677/3220468). Ale souhlasím že to není chování, které by měla většina jazyků.