JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 150. Schauen wir uns Beispiele für Lambda...

Kaffeepause Nr. 150. Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an. Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA

Veröffentlicht in der Gruppe Random-DE

Beispiele für Lambda-Ausdrücke in Java lernen

Quelle: Medium In diesem Artikel betrachten wir Lambda-Ausdrücke, die Grundlage der funktionalen Programmierung in Java. Kaffeepause Nr. 150.  Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an.  Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA – 1

Lambda-Ausdruckssyntax

Die Syntax von Lambda-Ausdrücken ist intuitiv, leicht verständlich und einfach zu verwenden. Ein Lambda-Ausdruck besteht aus:
  1. Eingabeparameter
  2. Operator -Pfeil
  3. Block von Ausdrücken/Anweisungen
Das allgemeine Format ist:
<input-params> -> <function-code>

Beispiele für Lambda-Ausdrücke

Lambda-Ausdrücke lassen sich am besten anhand von Beispielen verstehen, also schauen wir uns einige davon an.

1. Akzeptiert keine Eingaben und gibt keine Ausgaben zurück

Ein einfacher Lambda-Ausdruck akzeptiert keine Eingaben und gibt keine Ausgaben zurück – es ist buchstäblich nur ein Codeblock, der ohne Kontext ausgeführt wird.
() -> System.out.println("Here I am!");
Die Angabe von () am Anfang an der Position der Eingabeparameter bedeutet, dass keine Parameter übergeben werden (wie bei leeren Klammern, die einer Methode folgen, die keine Parameter hat).

2. Akzeptiert eine einzelne Eingabe, gibt keine Ausgabe zurück

Damit ein Lambda-Ausdruck einen Parameter annimmt, platzieren wir ihn an der Position der Eingabeparameter:
name -> System.out.println("Here you are too, " + name +  "!");
NOTIZ : Wenn wir einen Eingabeparameter haben, können wir die Klammern weglassen. Wir können auch (Name) angeben, das ist völlig akzeptabel.

3. Akzeptiert mehrere Eingaben, gibt keine Ausgabe zurück

Wenn wir mehrere Eingabeparameter an einen Lambda-Ausdruck übergeben, müssen wir:
  • Schließen Sie Parameter in Klammern ein
  • Verwenden Sie ein Komma, um sie voneinander zu trennen
(name, food) -> System.out.println("So " + name + " enjoys eating " + food + "... interesting!");

4. Enthält mehrere Anweisungen in einem Codeabschnitt

Das Speichern von Lambda-Ausdrücken in einzeiligen Anweisungen gilt als bewährte Vorgehensweise. Sie können aber auch mehrere Zeilen verwenden:
() -> {
  System.out.println("The owl and the pussycat went to sea");
  System.out.println("in a beautiful pea green boat");
}

5. Rückgabetypen werden niemals angegeben

Wie Sie vielleicht bemerkt haben, werden beim Definieren eines Lambda-Ausdrucks keine Rückgabetypen angegeben. Hier ist ein Beispiel:
() -> System.out.println("I don't return anything!")
Und einer mehr:
() -> "I return this String!"
Beide Codebeispiele sind fast gleich, aber das zweite Lambda gibt einen String zurück. Bitte beachten Sie dies bei der Verwendung. Natürlich wird der Compiler den Unterschied zwischen ihnen durch die bedingte Verwendung von Funktionsdeskriptoren verstehen.

6. Die Typinferenz wird nach Möglichkeit automatisch angewendet

Um den Typ zu bestimmen, verwendet der Compiler die Typinferenz. Dazu wird der Ausführungskontext des Lambda-Ausdrucks untersucht. Für den Entwickler bedeutet dies, dass er sich nicht um die Umwandlung in einen bestimmten Typ kümmern muss.

7. Notation von Funktionsdeskriptoren

Wenn wir darüber nachdenken, welchen Typen ein Lambda-Ausdruck zugewiesen werden kann, ist es sehr nützlich, Funktionsdeskriptoren zu verwenden. Ein Funktionshandle ist im Wesentlichen eine Methodensignatur, die ein Lambda-Ausdruck (oder eine Methode) bereitstellt. Seine Syntax ist fast die gleiche wie bei Lambda-Ausdrücken, außer dass es anstelle eines Codeabschnitts einen Ausgabetypabschnitt gibt. Hier ist ein Beispiel:
<input-parameter-types> -> <output-parameter-type>

Beispiele für Funktionsdeskriptoren

Hier sind einige Beispiele für Funktionsdeskriptoren: () -> () Eine Methode, die keine Eingabeparameter akzeptiert und keinen Wert zurückgibt. (String) -> () Methode, die einen Eingabeparameter akzeptiert und keinen Wert zurückgibt. () -> (int, float) Eine Methode, die keine Eingabeparameter akzeptiert und einen int und einen float(int[]) -> zurückgibt . (SortedMap<Character, Integer>) Methode, die ein int- Array verwendet und eine SortedMap von Character zu Integer zurückgibt . Funktionsdeskriptoren erleichtern die Bewertung der Typkompatibilität, wenn wir überlegen, welche Zieltypen wir für einen Lambda-Ausdruck verwenden können.

Abschluss

Wie Sie sehen, sind Lambda-Ausdrücke eine nette und einfache Möglichkeit, Verhalten zu kapseln. Es ist eine der Grundlagen des funktionalen Programmierparadigmas, das in Java mit der Veröffentlichung von JDK 8 eingeführt wurde.

Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA

Quelle: Better Programming Es ist kaum zu glauben, aber viele Jahre später treffe ich immer noch Leute, die diese großartigen Funktionen in IntelliJ IDEA nicht kennen.

1. Finden Sie etwas

Es ist ziemlich schwierig, sich jede Tastenkombination zu merken und den Überblick über alles zu behalten, was IntelliJ IDEA leisten kann. Aus diesem Grund verwende ich häufig die Suche in IntelliJ IDEA. Dies hilft mir, die Menüelemente, Tools, Einstellungen und sogar Dateien, die ich benötige, an einem Ort zu finden. Kaffeepause Nr. 150.  Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an.  Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA – 2

2. Wissen Sie, wo Sie sind

Bevor ich diese Funktion gefunden habe, habe ich die Schaltfläche „Öffnen auswählen“ verwendet, um die aktuell bearbeitete Datei im Projektbaum anzuzeigen. Kaffeepause Nr. 150.  Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an.  Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA – 3Jetzt erledigt IntelliJ IDEA das für mich. Dies ist keine Standardoption, daher müssen Sie sie für jedes neue oder bestehende Projekt festlegen. Kaffeepause Nr. 150.  Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an.  Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA – 4

3. SQL-Optimierung

Wussten Sie, dass das Standard-Datenbank-Plugin in Ihrer IDE mehr als ein einfacher SQL-Executor ist? Angesichts der Tatsache, dass die Persistenzschicht (I/O) immer der langsamste Teil der Anwendung ist, stelle ich bei der Arbeit mit relationalen Datenbanken immer sicher, dass meine SQL-Abfragen einen guten Ausführungsplan haben. Kaffeepause Nr. 150.  Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an.  Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA – 5

4. Mehrzeilige Bearbeitung

Möglicherweise haben Sie diese Funktion bereits im Sublime Text Editor verwendet. Kaffeepause Nr. 150.  Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an.  Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA – 6

5. Gehen Sie zurück / vorwärts

Tatsächlich gehe ich oft dorthin zurück, wo ich vorher war, indem ich die Vor- oder Zurück-Tasten drücke. Kaffeepause Nr. 150.  Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an.  Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA – 7Zurück/vorwärts gehen: ⌥⌘+Links-/Rechtspfeil (Strg+Alt+Links-/Rechtspfeil für Win/Linux). Um aktuelle Dateien zu öffnen, drücken Sie ⌘E (Strg+E für Win/Linux).

6. Lesezeichen

Ich setze Lesezeichen für wichtige Teile des Codes, damit ich jederzeit schnell darauf zugreifen kann. Kaffeepause Nr. 150.  Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an.  Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA – 8Um zu einem Lesezeichen zu gelangen, drücken Sie ⌃+<Nummer> (Strg+<Nummer> für Win/Linux). Ich möchte gleich sagen, dass ich nicht mehr als drei Lesezeichen gleichzeitig verwende, da es dann schwierig wird, sich daran zu erinnern, wozu sie dienen.

7. Ein Editor für alles

Früher habe ich andere Texteditoren wie Visual Studio Code oder Sublime geöffnet, um Teile des Codes, JSON, XML zu speichern und sie dann zu verlinken. Dies ist jedoch nicht Teil der Codebasis (des Projekts) und IntelliJ IDEA erinnert Sie deutlich daran, wenn Sie versuchen, so etwas zu erstellen oder zu bearbeiten. Dann sah ich, wie einer meiner Kollegen Snippets verwendete, und erkannte, wie genial das war. Kaffeepause Nr. 150.  Schauen wir uns Beispiele für Lambda-Ausdrücke in Java an.  Die 7 am meisten unterschätzten Funktionen von IntelliJ IDEA – 9Neue Snippet-Datei: ⇧⌘N (Umschalt+Strg+N für Win/Linux). Snippets sind in allen Fenstern Ihrer Projekte verfügbar und synchronisiert. Ich verwende sie oft, um JSON oder SQL zu untersuchen und zu formatieren, das ich von woanders erhalten habe.

Mein Geheimrezept

Das Tüpfelchen auf dem i ist eine Funktion, die mir jeden Tag eine Menge Zeit beim Tippen erspart: Tabnine ist ein JetBrains-Plugin zum Kompilieren von KI-gestütztem Intellij IDEA-Code. Im Moment ist es kostenlos, aber beeilen Sie sich, ich glaube nicht, dass es lange halten wird.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION