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

Luca Bacchi bacchilu a gmail.com
Ven 27 Feb 2015 13:53:18 CET


@carlos

Nel tuo esempio intanto c'è una cosa poco chiara parlando in termini di
Javascript: le variabili si dichiarano all'interno delle funzioni con "var"
e lo si fa una volta sola. Quindi nel tuo codice già è presente un "var
pippo" 2 volte, e questo potrebbe portare a dei fraintendimenti. La
dichiarazione "var pippo" ovunque tu la metta (tu l'hai messa sia fuori che
dentro) abbiamo detto che si comporta "come se" tu l'avessi messa una sola
volta e all'inizio della funzione. Quindi si comporta esattamente come
dovrebbe.

Ti faccio un esempio un po' diverso:

(function () {
    var pippo = 0;

    _.each([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function (element) {
        var pippo = i;
    });

    console.log(pippo);
})();

(_.each è roba di undercorejs ma non te ne curar)

Non ho provato ma direi che in questo caso dovrebbe stampare pippo = 0.
Function Scope.

Il giorno 27 febbraio 2015 13:26, Nadir Sampaoli <nadirsampaoli a gmail.com>
ha scritto:

>
> Il 27/feb/2015 11:18 "Carlos Catucci" <carlos.catucci a gmail.com> ha
> scritto:
> > 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.
>
> Quell'esempio secondo me spiega poco. La cosiddetta fat arrow (scritta
> `=>`) è presa da coffeescript che ha due notazioni per le funzioni anonime.
> Una è `->` (o "thin arrow") e dovrebbe essere equivalente ad una normale
> `function () {}`.
>
> La fat arrow invece fa il bind automatico del `this` alla funzione, cioè
> dovrebbe equivalere a `(function(){}).bind(this)`.
>
> Se non si è pratici di come funziona il "this" in JS la cosa può risultare
> poco chiara.
>
> --
> Nadir
>
> _______________________________________________
> 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/d43e1711/attachment.html>


Maggiori informazioni sulla lista Python