<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2015-03-22 15:35 GMT+00:00 Manlio Perillo <span dir="ltr"><<a href="mailto:manlio.perillo@gmail.com" target="_blank">manlio.perillo@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Tra l'altro il tutto è complicato dal fatto, AFAIK, che ciascuno degli operandi può avere effetti collaterali.</div><div>Ad esempio:</div><div><a href="https://play.golang.org/p/jc0vKCWFu7" target="_blank">https://play.golang.org/p/jc0vKCWFu7</a></div></blockquote></div><br>Scusa non comprendo... in C (e in Go) && introduce un sequence point. Quindi *sai* l'ordine in cui le cose sono valutate.</div><div class="gmail_extra">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().</div><div class="gmail_extra"><br></div><div class="gmail_extra">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!<br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div>