Java TUTORIAL Italiano: Cos'è la LAMBDA EXPRESSION (Espressione Lambda) e le Interfacce Funzionali

  Рет қаралды 4,660

CodeBrothers

CodeBrothers

Күн бұрын

Пікірлер: 32
@nicolaslazzari1818
@nicolaslazzari1818 10 ай бұрын
Sei veramente forte, riesci a rendere leggere lezioni su argomenti veramente pesanti e pallosi ma senza esagerare
@CodeBrothers
@CodeBrothers 10 ай бұрын
Ciao Nicola! Grazie è molto bello sapere che ti sia tornato utile 🤟😎 lo scopo del nostro canale è proprio rendere una materia trafiggi ma**ni un po' più divertente così da diventare ogni giorno dei dev migliori! Ultimamente stiamo cercando di migliorare ancora di più i video, ti consiglio quindi gli ultimi due sui Thread per avere una esperienza nuova e si spera..ancora migliore ✨
@karazero
@karazero 8 ай бұрын
Like obbligatorio, iscrizione anche, bravissimo!
@CodeBrothers
@CodeBrothers 8 ай бұрын
Ciao Karazero! Grazie mille cerchiamo di fare del nostro meglio in ogni video!:)
@raffaelemaisto8967
@raffaelemaisto8967 Жыл бұрын
Veramente ben fatto. Complimenti
@CodeBrothers
@CodeBrothers Жыл бұрын
Ci fa un sacco piacere Raffaele! Ci abbiamo messo molto a prepararla 🥰
@eigherreight71
@eigherreight71 5 ай бұрын
Fortissimo, grazie!
@CodeBrothers
@CodeBrothers 5 ай бұрын
Ciao Eigherteight! Grazie mille a te 💪😎
@antoninofabriziolabate3314
@antoninofabriziolabate3314 2 жыл бұрын
Finalmente
@CodeBrothers
@CodeBrothers 2 жыл бұрын
E vedrai la prossima che roba! 😄
@BiagioRosarioGreco
@BiagioRosarioGreco 2 жыл бұрын
Salve Brothers.. il video mi ha chiarito degli aspetti ma l'apertura su questo argomento mi ha messo dubbi su alcune cose che pensavo essere certezze.. cioè boom avete mandato in Crash il mio coding.. non va bene!! 😭 Rimanendo sul pezzo. Nei video indiani (purtroppo in lingua non italiana sono il 70% indiani) sulla FP si parla prevalentemente della classe producer e consumer per funzioni lambda che da quel poco che ho capito sono l'equivalente delle Arrow function di JS. Il punto è (e questo è un dubbio che mi rimane pur avendo guardato il vostro video) se ho bisogno di creare una lambda espression che usa in ingresso n > 3 parametri con consumer e producer come si fa esiste un metodo per non fare casino ed usare 3 o 4 o più parametri di ingresso????? In ultima istanza: approcciandomi alla fp in JS anzitempo, l'unica vera certezza che ho maturato è che, facendo un paragone con c++, una funzione lambda è una sorta di puntatore a funzione io creo questo puntatore che punta ad un'area di codice e lo uso come fosse una funzione passandoci anche parametri, non ha bisogno di un return ed è per via del LifeScooping più pratico... Vi prego, come dei massaggiatori mettete a posto le ossa rotte dovuto alla confusione che ho in testa 😂
@CodeBrothers
@CodeBrothers 2 жыл бұрын
Ciao Biagio! 😊 Innanzitutto ci teniamo a sottolineare che una lambda non è un puntatore a funzione ma è un vero e proprio oggetto. Quando scriviamo _Consumer c = s -> System.out.println(s)_ stiamo assegnando la nostra lambda expression ad una reference variable *s* di tipo *Consumer* . Per forza di cose quindi la espressione viene valutata ad un oggetto di quel tipo o non potrebbe venire assegnata a quella variabile. Sulla questione "parametri >3", dato che la lambda la stiamo utilizzando per implementare una functional interface, dobbiamo per forza rispettare la sua firma. Consumer prevede 1 solo argomento, BiConsumer ne prevede due quindi da lì non si scappa. Per usarne tre o più hai due approcci: - ti crei una tua nuova interfaccia, ad esempio TriConsumer, che prende in input 3 parametri - usi la tecnica del currying Eccoti degli esempi per ognuno dei 2 casi: *Currying* Function f = d -> i -> s -> { System.out.println("" + d+ ";" + i+ ";" + s); }; f.apply(1.0).apply(2).accept("s");TriConsumer: *TriConsumer* @FunctionalInterface public interface TriConsumer { void accept(A a, B b, C c); }
@RDB-jl2we
@RDB-jl2we Жыл бұрын
Ciao! Contenuto molto interessante, pensi di preparare un contenuto anche sugli stream? Ho dato un occhiata ai tuoi video, spesso lo utilizzi ma non ho trovato nullo in cui spieghi dettagliatamente questo costrutto. Grazie mille
@CodeBrothers
@CodeBrothers Жыл бұрын
Ciao R2! 😄 Il corso che stiamo preparando vuole coprire ogni parte possibile di Java, e sebbene ci vorrà molto tempo questo è il nostro obiettivo. Gli stream sono fondamentali, presto arriveranno e meriteranno una Playlist a parte addirittura! Al momento, come detto nei video di domande di colloquio purtroppo ancora non li abbiamo trattati ma volevamo comunque mostrarli così da aiutare coloro che sono in fase di selezione (e chissà..magari se qualcuno vuole provare a studiarseli trova anche degli esercizi risolti!) Un saluto 🤟
@RDB-jl2we
@RDB-jl2we Жыл бұрын
@@CodeBrothers Allora non mi resta che iscrivermi, cosa che ho già fatto ed attivare la campanella. Complimenti per la bella iniziativa, posso chiederti ogni quando esce un video?
@CodeBrothers
@CodeBrothers Жыл бұрын
@@RDB-jl2we Grazie infinite per la fiducia! 🙏 Per il momento abbiamo sempre fatto uscire un nuovo video ogni lunedì alle ore 12 (è infatti proprio la nostra copertina se clicchi dentro il canale 🤣) e inoltre quando trattiamo esercizi molto veloci ne facevamo uscire anche uno il mercoledì sempre alle ore 12. Adesso stiamo per portare una grande novità sul canale, capiti in un momento davvero unico (ha a che fare con il penultimo video che abbiamo pubblicato). Ci sarà forse una piccola pausa per cui vale MOLTO la pena aspettare, ne parleremo nel video del prossimo lunedì quasi sicuramente! 😇
@eigherreight71
@eigherreight71 5 ай бұрын
Ma quindi la annotation @FunctionalInterface serve solo ed esclusivamente a segnalare la presenza di metodi di troppo?
@CodeBrothers
@CodeBrothers 5 ай бұрын
Ehi ciao! Cosa intendi di preciso con la presenza di metodi di troppo?
@eigherreight71
@eigherreight71 5 ай бұрын
@@CodeBrothers Nell'interfaccia hai fatto vedere che inserendo un altro metodo dava errore, perchè appunto ne poteva contenere solo uno. Ma quindi quella annotation serve esclusivamente a segnalare il fatto che hai messo un altro metodo? Non so se mi sono spiegato
@CodeBrothers
@CodeBrothers 5 ай бұрын
@@eigherreight71 Lo scopo della annotation @FunctionalInterface è di INFORMARE che quella interfaccia dovrà contenere un solo metodo astratto, in questo modo se un altro sviluppatore arriverà lì e proverà ad aggiungere qualcosa ci penserà due volte vedendo quella annotation :) Inoltre sposterai il tuo problema direttamente nella tua interfaccia e non in giro per il codice in 2000 posti! In poche parole non è obbligatorio metterla ma aiuta molto a ridurre possibili errori. Facci sapere se ti è tutto chiaro e in caso entra pure nel nostro canale Discord dove possiamo anche conversare e ti puoi confrontare con altri CodeBrothers ;)
@luigi6639
@luigi6639 2 жыл бұрын
Ma quindi ogni volta che userò le lambda devo usare le functional interface? Intendo proprio come correttezza di scrittura
@CodeBrothers
@CodeBrothers 2 жыл бұрын
Ciao Luigi! 😉 Ogni volta che scriviamo una Lambda stiamo usando "S.A.M" e quindi una @FunctionalInterface ma attenzione a non confondere i concetti: posso usare una lambda anche se non ho l'annotazione @FunctionalInterface. Quindi non è vero che se ho una @FunctionalInterface allora sto usando una Lambda. Fammi sapere se è tutto chiaro, a presto!
@luigi6639
@luigi6639 2 жыл бұрын
@@CodeBrothers si di fatti nel video all inizio viene usata la lambda senza l'annotazione, perché c'è solo un metodo. Però dico in generale se voglio usare una lambda devo usare un'interfaccia, che dovrà essere una factionalinterface, poi l'annotazione può essere omessa. Oppure ci sono altri metodi di dichiarare una lambda?
@CodeBrothers
@CodeBrothers 2 жыл бұрын
@@luigi6639 Esatto Luigi, ormai hai fatto tuo il concetto 💥 Potremmo anche dire che, più che usare una interfaccia la Lambda è proprio lei stessa la implementazione di quella interfaccia
@luigi6639
@luigi6639 2 жыл бұрын
@@CodeBrothers perfetto quest'ultima risposta mi ha definitivamente chiarito le idee. Grazie come sempre♥️
@CodeBrothers
@CodeBrothers 2 жыл бұрын
@@luigi6639 ma figurati, è un piacere, buon proseguimento ✌️😎
@pincopanco131
@pincopanco131 2 жыл бұрын
Invece se voglio restituire un valore con la lambda?
@CodeBrothers
@CodeBrothers 2 жыл бұрын
Ciao Pinco! Per restituire un valore questo dipenderà dalla tua implementazione. Noi abbiamo solo usato un System.out ma tu puoi decidere ciò che preferisci 😊 Puoi fare anche una addizione per esempio! return (a, b) - > a+b; La figata è che la lambda come ho detto, è proprio un valore 🤘
@pincopanco131
@pincopanco131 2 жыл бұрын
@@CodeBrothers la verità è che devo partire dall inizo. 😔 è un periodo incasinato ma appena farò sul serio like ad ogni video. Grazie per il lavoro che hai fatto.
@CodeBrothers
@CodeBrothers 2 жыл бұрын
@@pincopanco131 Tranquillo Pinco, anche una camminata di 10.000 passi comincia semplicemente col muovere in avanti la gamba destra (o sinistra! 😄). Il nostro corso lo abbiamo cominciato veramente dalle basi più totali quindi entra pure sul nostro canale, cerca la playlist di teoria e clicca sulla lezione 1 dove ti spiegherò proprio le basi della programmazione Java con tanto di storia e la sua nascita 🧐 Facci sapere, a presto!
@giuseppedestasio7358
@giuseppedestasio7358 Ай бұрын
opinione di uno che ne sa poco, a furia di passi indietro si confonde tutto, per me dovrebbe essere piu lineare chiaro semplice.... .meno parole.
@CodeBrothers
@CodeBrothers Ай бұрын
@@giuseppedestasio7358 Ciao Giuseppe e grazie per il commento! Capisco il dubbio, e provo a rispondere: se mostrassi soltanto come fare in modo rapido e lineare non avresti mai saputo perché esiste la lambda, a quale necessità risponde, perché è nata e come tornare indietro da lambda a classe anonima. Queste cose a volte sono necessarie e soprattutto se te la chiedono ad un colloquio non puoi non saperla.. PS: Inoltre la lambda si comporta in modo diverso dalla implementazione con classe anonima
小丑在游泳池做什么#short #angel #clown
00:13
Super Beauty team
Рет қаралды 43 МЛН
Новый уровень твоей сосиски
00:33
Кушать Хочу
Рет қаралды 4,6 МЛН
Lambda Expressions in Java - Full Simple Tutorial
13:05
Coding with John
Рет қаралды 743 М.
Preparazione Colloquio Per Programmatori Java Junior
56:14
Programming Academy di Antonio Pagano
Рет қаралды 3,3 М.
Java lambda λ
18:00
Bro Code
Рет қаралды 94 М.
小丑在游泳池做什么#short #angel #clown
00:13
Super Beauty team
Рет қаралды 43 МЛН