[Python] Alcune cose sono interessanti, altre non so se hanno senso

Luca Bacchi bacchilu a gmail.com
Ven 27 Feb 2015 11:42:21 CET


Ciao Carlos, come stai?

Ti spiego la "let" poi la tua mail è troppo lunga e mi fermo...

In js il costrutto var definisce le variabili. Lo scope delle variabili è
sempre funzionale: ovunque tu scriva "var x = 1;" è sempre come se tu lo
scrivessi all'inizio della tua funzione. Functional Scope, appunto. Prova
tu a immaginare l'attenzione che bisogna avere quando hai a che fare
blocchi annidati, cicli, o cose simili.

"let" permetterà di definire delle variabili con Block Scope, cioè potrai
definire una variabile nel punto in cui ti serve e diciamo che il suo scope
sarà limitato al blocco in cui è stata definita.

Il giorno 27 febbraio 2015 11:17, Carlos Catucci <carlos.catucci a gmail.com>
ha scritto:

>
> 2015-02-27 11:02 GMT+01:00 Alessandro Re <ale a ale-re.net>:
> >
> > Secondo te cosa non ha senso?
> >
> > Personalmente ho sempre pensato che il bello di javascript era la
> semplicità del linguaggio... Dopo aver letto questo mi è caduto tutto, a
> parte le let, praticamente tutto il resto aggiunge complessità.
> >
> > E poi la sintassi di molte cose nuove è esteticamente orribile :p
>
> Correggetemi se ho frainteso ma:
>
> In effetti la let non la ho capita. Si va bene lo scope e' piu' chiaro, ma
> una var interna potrebbe fare la stessa cosa senza aggiungere un ulteriore
> reserved keyword.
> La const in se fa comodo ma si vive anche senza (per convenzione io uso
> una var maiuscola e so che e' una costante per cui non la cambio mai,
> inoltre uso i namespaces, quindi mi basta uno chiamato CONST seguito da
> .nomecostante e evito il problema.
> Destructuring non e' male forse, ma mi sembra un poco contorto, in fondo
> e' un array no?
> Spread e' un passare una lista come parametro ad una funzione che si
> aspetta una serie di parametri. Avrei preferito una evolusione del tipo
> *args,**kwargs alla Python.
> Arrow function mi fa tanto PHP, e non ho capito come funziona. Il tipo fa
> prima un esempio dove scrive
>
> employees.forEach(function(emp) {
>     totalAge += emp.age;
> });
>
> E va bene, ma qui emp la definisce lui come parametro passato alla
> funzione, poi scrive
>
> employees.forEach(emp => {
>     totalAge += emp.age;
> });
>
> che sarebbe la lambda, ma scritto cosi' e' poco chiaro. Questioone di
> leggibilita', tutto qui.
>
>
> Default parameters mi ricorda tanto Python, se esiste ok oppure assegna
> questo valore.
> Rest Parameters appunto sembra essere *args, solo he inevec che un array
> gli passo una seire di parametri. Non vedo ancora il vantaggio, ma magari
> sono io.
> Non ho ancora visto bene il resto, gli iterators forse sono una cosa
> buona, idem per i generators, ma devo ancora darci un'occhio bene.
>
> Carlos
> --
> EZLN ... Para Todos Todo ... Nada para nosotros
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150227/f04dafcb/attachment.html>


Maggiori informazioni sulla lista Python