2015-03-22 15:35 GMT+00:00 Manlio Perillo <manlio.peri...@gmail.com>:

> Tra l'altro il tutto è complicato dal fatto, AFAIK, che ciascuno degli
> operandi può avere effetti collaterali.
> Ad esempio:
> https://play.golang.org/p/jc0vKCWFu7
>

Scusa non comprendo... in C (e in Go) && introduce un sequence point.
Quindi *sai* l'ordine in cui le cose sono valutate.
Ovviamente in C (e in GO) se scrivi & *non* hai un sequence point. Solo che
in C non hai garanzie sull'ordine di valutazione. In Go invece hanno fatto
una cosa molto saggia ed e' garantirti da specifica che l'ordine di
valutazione delle espressioni e' lessicografico da sinistra a destra.
Ovvero se scrivi f() & g() (ammesso che tu lo possa scrivere... in generale
hai cazzi con i tipi) hai certezza che f() sara' valutato prima di g().

Dopo di che mi gira il cazzo perche' in Go non c'e' un singolo modo decente
per convertire un booleano in intero (no, fare un if non e' un modo
decente) e per *nessuna* ragione che a me paia sensata (per favore,
qualcuno mi spieghi il perche') & e | non funzionano con operandi
booleani.  Voglio dire, sarebbero operazioni perfettamente definite e type
safe. WTF!


-- 
.
..: -enrico-
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a