2013-05-31 2 views
47

Le espressioni lambda sono state aggiunte in Java 8. Voglio capire perché questo è importante. Cosa significa per un programmatore Java che deve ancora essere esposto agli idiomi di programmazione funzionale? Significa che posso scrivere codice che ha prestazioni migliori o ridimensiona in modo massivo o rende solo il codice meno dettagliato. O tutto questo.Java Lambda expressions

+0

Ho seguito un corso sull'organizzazione dei linguaggi di programmazione, come mi ha detto il mio professore è che puoi rendere il tuo codice pigro. Anche tu, ancora non capisco questo, puoi "arrivare in cima alla montagna"? Ma davvero, mi ha confuso l'inferno, non vedo l'ora di vedere le risposte. –

+0

Hmm un uso che posso vedere è la scelta runtime e la creazione di funzioni. Supponiamo di fare qualcosa per un oggetto e in base a ciò che hai fatto devi passare a uno dei 100 metodi o un metodo con 100 ifs, con lambda puoi scrivere l'unico metodo al volo senza se. – arynaq

+5

'E = hc/λ' !!! Cmon uomo !! – Tdorno

risposta

38

Oracle ha già tutorial sull'argomento. Elenca diversi casi di grandi usi.

Prima di trovare il collegamento, stavo per dire che le espressioni lambda consentono di passare "funzioni" al codice. In questo modo è possibile scrivere codice più facilmente di cui avevamo bisogno per un'intera confusione di interfacce/classi astratte. Ad esempio, si supponga di avere un codice con una logica o un flusso di lavoro complesso loop/condizionale. Ad un passo vuoi fare qualcosa di diverso. Con le espressioni lambda, puoi semplicemente passare "qualcosa di diverso". Leggi il tutorial però. È molto chiaro

+0

Mi sono confuso perché il tuo uso della frase - "* Prima ho trovato il link, stavo per dire che *". Quindi, dopo aver trovato il link Oracle, la tua opinione/opinione è cambiata? Voglio dire, stavi pensando male o "meno" e dopo aver letto quel link hai capito che c'è dell'altro. La ragione per cui ti sto chiedendo è che quello che stavo menzionando prima era giusto e il succo di quel collegamento, quindi voglio sapere se non ho realizzato il pieno potenziale delle espressioni lambda. – hagrawal

+0

Intendevo che quella era la mia lingua. Il tutorial lo dice meglio –