JavaRush /Java Blog /Random-IT /Pausa caffè #150. Studiamo esempi di espressioni lambda i...

Pausa caffè #150. Studiamo esempi di espressioni lambda in Java. 7 funzionalità più sottovalutate di IntelliJ IDEA

Pubblicato nel gruppo Random-IT

Esempi di apprendimento delle espressioni lambda in Java

Fonte: Medium In questo articolo esamineremo le espressioni lambda, la base della programmazione funzionale in Java. Pausa caffè #150.  Studiamo esempi di espressioni lambda in Java.  Le 7 caratteristiche più sottovalutate di IntelliJ IDEA - 1

Sintassi dell'espressione Lambda

La sintassi delle espressioni lambda è intuitiva, facile da comprendere e da usare. Un'espressione lambda è composta da:
  1. parametri di input
  2. freccia dell'operatore
  3. blocco di espressioni/dichiarazioni
Il formato generale è:
<input-params> -> <function-code>

Esempi di espressioni lambda

Le espressioni lambda si capiscono meglio attraverso gli esempi, quindi esaminiamone alcuni.

1. Non accetta input e non restituisce output

Una semplice espressione lambda non accetta alcun input e non restituisce alcun output: è letteralmente solo un blocco di codice che viene eseguito senza alcun contesto.
() -> System.out.println("Here I am!");
Specificare () all'inizio, nella posizione dei parametri di input, significa che non viene passato alcun parametro (come con le parentesi vuote che seguono un metodo che non ha parametri).

2. Accetta un singolo input, non restituisce alcun output

Per fare in modo che un'espressione lambda prenda un parametro, lo posizioniamo nella posizione dei parametri di input:
name -> System.out.println("Here you are too, " + name +  "!");
NOTA : Se abbiamo un parametro di input, possiamo omettere le parentesi. Possiamo anche specificare (nome), questo è completamente accettabile.

3. Accetta più input, non restituisce alcun output

Quando passiamo più parametri di input a un'espressione lambda, dobbiamo:
  • racchiudere i parametri tra parentesi
  • utilizzare la virgola per separarli
(name, food) -> System.out.println("So " + name + " enjoys eating " + food + "... interesting!");

4. Contiene più istruzioni in una sezione di codice

Memorizzare le espressioni lambda in istruzioni di una riga è considerata una buona pratica. Ma puoi anche utilizzare più righe:
() -> {
  System.out.println("The owl and the pussycat went to sea");
  System.out.println("in a beautiful pea green boat");
}

5. I tipi di restituzione non vengono mai specificati

Come avrai notato, quando si definisce un'espressione lambda, non vengono specificati tipi restituiti. Ecco un esempio:
() -> System.out.println("I don't return anything!")
E ancora uno:
() -> "I return this String!"
Entrambi gli esempi di codice sono quasi uguali, ma il secondo lambda restituisce una stringa. Si prega di tenerlo presente quando li si utilizza. Naturalmente, il compilatore capirà la differenza tra loro attraverso l'uso condizionale dei descrittori di funzione.

6. L'inferenza del tipo viene applicata automaticamente ove possibile

Per determinare il tipo, il compilatore utilizzerà l'inferenza del tipo. Per fare ciò, esamina il contesto di esecuzione dell'espressione lambda. Per lo sviluppatore, ciò significa che non dovrà preoccuparsi di trasmettere a un tipo specifico.

7. Notazione del descrittore di funzione

Quando pensiamo a quali tipi può essere assegnata un'espressione lambda, è molto utile utilizzare i descrittori di funzione. Un handle di funzione è essenzialmente una firma del metodo fornita da un'espressione lambda (o metodo). La sua sintassi è quasi la stessa delle espressioni lambda, tranne per il fatto che invece di una sezione di codice è presente una sezione del tipo di output. Ecco un esempio:
<input-parameter-types> -> <output-parameter-type>

Esempi di descrittori di funzioni

Ecco alcuni esempi di descrittori di funzione: () -> () Un metodo che non accetta parametri di input e non restituisce un valore. (String) -> () Metodo che accetta un parametro di input e non restituisce un valore. () -> (int, float) Un metodo che non accetta parametri di input e restituisce un int e un float(int[]) -> . (SortedMap<Character, Integer>) Metodo che accetta un array int e restituisce un SortedMap da Character a Integer . La presenza di descrittori di funzioni semplifica la valutazione della compatibilità dei tipi quando si considerano quali tipi di destinazione possiamo utilizzare per un'espressione lambda.

Conclusione

Come puoi vedere, le espressioni lambda sono un modo semplice e accurato per incapsulare il comportamento. È uno dei fondamenti del paradigma di programmazione funzionale introdotto in Java con il rilascio di JDK 8.

7 funzionalità più sottovalutate di IntelliJ IDEA

Fonte: Better Programming È difficile da credere, ma molti anni dopo incontro ancora persone che non conoscono queste fantastiche funzionalità di IntelliJ IDEA.

1.Trova qualsiasi cosa

È abbastanza difficile ricordare ogni combinazione di tasti e tenere traccia di tutto ciò che IntelliJ IDEA può fare. Questo è il motivo per cui utilizzo spesso la ricerca all'interno di IntelliJ IDEA. Questo mi aiuta a trovare le voci di menu, gli strumenti, le impostazioni e persino i file di cui ho bisogno in un unico posto. Pausa caffè #150.  Studiamo esempi di espressioni lambda in Java.  Le 7 caratteristiche più sottovalutate di IntelliJ IDEA - 2

2. Scopri dove ti trovi

Prima di trovare questa funzionalità, utilizzavo il pulsante "Seleziona Apri file" per visualizzare il file attualmente modificato nell'albero del progetto. Pausa caffè #150.  Studiamo esempi di espressioni lambda in Java.  7 funzionalità più sottovalutate di IntelliJ IDEA - 3Ora IntelliJ IDEA lo fa per me. Questa non è un'opzione predefinita, quindi dovrai impostarla per ogni progetto nuovo o esistente. Pausa caffè #150.  Studiamo esempi di espressioni lambda in Java.  7 funzionalità più sottovalutate di IntelliJ IDEA - 4

3. Ottimizzazione SQL

Sapevi che il plug-in del database predefinito nel tuo IDE è più di un semplice esecutore SQL? Dato che il livello di persistenza (I/O) è sempre la parte più lenta dell'applicazione, mi assicuro sempre che le mie query SQL abbiano un buon piano di esecuzione quando lavoro con database relazionali. Pausa caffè #150.  Studiamo esempi di espressioni lambda in Java.  7 funzionalità più sottovalutate di IntelliJ IDEA - 5

4. Modifica multilinea

Potresti aver già utilizzato questa funzione in Sublime Text Editor. Pausa caffè #150.  Studiamo esempi di espressioni lambda in Java.  Le 7 caratteristiche più sottovalutate di IntelliJ IDEA - 6

5. Vai indietro / avanti

In realtà spesso torno al punto in cui ero prima premendo i pulsanti Indietro o Avanti. Pausa caffè #150.  Studiamo esempi di espressioni lambda in Java.  7 funzionalità più sottovalutate di IntelliJ IDEA - 7Vai indietro/avanti: ⌥⌘+freccia sinistra/destra (Ctrl+Alt+freccia sinistra/destra per Win/Linux). Per aprire i file recenti, premi ⌘E (Ctrl+E per Win/Linux).

6. Segnalibri

Aggiungo ai segnalibri le parti importanti del codice in modo da potervi fare riferimento rapidamente in qualsiasi momento. Pausa caffè #150.  Studiamo esempi di espressioni lambda in Java.  Le 7 caratteristiche più sottovalutate di IntelliJ IDEA - 8Per andare a un segnalibro, premi ⌃+<numero> (Ctrl+<numero> per Win/Linux). Dico subito che non utilizzo più di tre segnalibri alla volta, perché poi diventa difficile ricordare a cosa servono.

7. Un editor per tutto

Aprivo altri editor di testo come Visual Studio Code o Sublime per salvare parti di codice, JSON, XML e quindi collegarmi ad essi. Ma questo non fa parte del codebase (progetto) e IntelliJ IDEA te lo ricorda chiaramente quando provi a creare o modificare qualcosa di simile. Poi ho visto uno dei miei colleghi usare Snippets e ho capito quanto fosse geniale. Pausa caffè #150.  Studiamo esempi di espressioni lambda in Java.  7 funzionalità più sottovalutate di IntelliJ IDEA - 9Nuovo file di frammento: ⇧⌘N (Maiusc+Ctrl+N per Win/Linux). Gli snippet sono disponibili e sincronizzati in tutte le finestre dei tuoi progetti. Li uso spesso per esaminare e formattare alcuni JSON o SQL che ho ricevuto da qualche altra parte.

La mia ricetta segreta

La ciliegina sulla torta è una funzionalità che mi fa risparmiare un sacco di tempo di digitazione ogni giorno: Tabnine è un plugin JetBrains per compilare codice Intellij IDEA basato sull'intelligenza artificiale. Per ora è gratis, ma affrettati, non credo che durerà a lungo.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION