<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-07-17 0:53 GMT+02:00 Enrico Bianchi <span dir="ltr"><<a href="mailto:enrico.bianchi@ymail.com" target="_blank">enrico.bianchi@ymail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">On 07/13/2015 11:55 AM, enrico franchi wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
</blockquote></span><span class=""></span></blockquote><div>> [...] </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
a = may_return_null(...)<br>
if a is not None:<br>
    f(a, ...)<br>
</blockquote></span>
Bruttino, non tanto perche` non mi piace, ma per com'e` scritto :)<br>
La sintassi<br>
if a:<br>
  f(a,...)<br>
<br>
E` molto piu` elegante (si, e` una pulce che non serve a molto) :)</blockquote><div><br></div><div>Io ti consiglio di lasciare `a is not None`.</div><div>`if a` può significare troppe cose, specialmente in Python, e rischi di ritrovarti con un comportamento inaspettato.</div><div><br></div><div>In Go per evitare problemi del genere hanno deciso che l'istruzione `if` accetta solo espressioni booleane.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Fanno sempre e solo stack unwind, non danno controllo al programmatore.<br>
</blockquote></span>
Mmm... continuo a non capire... Un esempio (o della documentazione)?<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Come dicevo... quello non e' Go idiomatico a mio avviso.<br>
</blockquote></span>
Anche qua, mi sembra che tu abbia dato piu` peso al codice che ho usato come esempio piuttosto che al concetto che volevo esprimere. Personalmente ritengo che un try/except sia piu` elegante rispetto al dover fare il check per ogni error che ti viene restituito.</blockquote><div><br></div><div><a href="http://blog.golang.org/errors-are-values">http://blog.golang.org/errors-are-values</a></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> Quello che intendo e` che, ad esempio, le operazioni di apertura, scrittura e chiusura di un file in Go devono essere gestite una per una, mentre in Python le posso gestire tutte nello stesso try/except che, personalmente, ritengo piu` sensato<span class=""><br>
<br></span></blockquote><div><br></div><div>Fino a quando non devi gestire l'errore.</div><div>A molti le eccezioni piacciono perchè ti fanno "dimenticare" che c'è stato un errore.</div><div><br></div><div>Il codice è "bello", ma quando devi gestire gli errori poi le cose iniziano ad andare in modo diverso.</div><div>E la gente inizia a fare:</div><div><br></div><div>except Exception:</div><div>    #  print traceback</div><div></div></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">se non di peggio.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Ciao  Manlio</div></div>