Was ist ein Lambda-Ausdruck (Java)

Ich konnte den Lambda-Ausdruck nicht verstehen, also habe ich ihn vereinfacht und das Ergebnis verstanden.

Anonyme Funktion

Zunächst ein Auszug aus Wikipedia über anonyme Funktionen.

Anonyme Funktion (Englisch: anonyme Funktion oder namenlose Funktion) [1] in einer Programmiersprache ist eine Funktion, die ohne Namen definiert ist.

Es gibt verschiedene Methoden, um anonyme Funktionen auszudrücken, aber in den letzten Jahren [2] ist der Mainstream die Lambda-Ausdrucksnotation.

(Wikipedia (https://ja.wikipedia.org/wiki/anonymous Funktion))

Lambda-Stil

Mit anderen Worten, ein Lambda-Ausdruck ist eine Möglichkeit, eine anonyme Funktion darzustellen. ("->" So ein Typ) → Ein Lambda-Ausdruck ist eine Funktion, die ohne Namen definiert wird.

Übrigens sieht es beim Schreiben in Java so aus. (Auszug aus der anonymen Funktion von Wikipedia.)

sample.java


import java.util.function.*;
...
BiFunction<Integer, Integer, Integer> add = (x, y) -> x + y;
System.out.println(add.apply(2, 3));

↑ Mit diesem Beispiel erklären

Funktionsschnittstelle

Was verwenden Sie überhaupt anonyme Funktionen? Deshalb kommt die funktionale Schnittstelle heraus. Grob gesagt ist es eine Schnittstelle, der Funktionen (siehe Lambda-Ausdrücke und -Methoden) zugewiesen werden können.

Zum Beispiel die Schnittstelle BiFunction <T, U, R>

Typparameter: T - Typ des ersten Funktionsarguments U - Typ des zweiten Funktionsarguments R - Funktionsergebnistyp → Eine Schnittstelle, über die Sie eine Funktion zuweisen können, die einen Rückgabewert mit zwei Argumenten zurückgibt.

Mit anderen Worten, wenn Sie dieser Schnittstelle die anonyme Funktion des vorherigen Beispiels zuweisen und die in dieser Schnittstelle definierte Methode (apply) aufrufen, wird die Verarbeitung der anonymen Funktion aufgerufen. ↓ Das Ergebnis wird standardmäßig mit 2 + 3 ausgegeben, da 2 und 3 als anzuwendende Argumente übergeben werden.

sample2.java


BiFunction<Integer, Integer, Integer> add = (x, y) -> {return x + y;};
System.out.println(add.apply(2, 3));

Ich habe bisher nicht darüber nachgedacht, Variablen in Java Funktionen zuzuweisen, daher denke ich, dass es schwer zu verstehen ist. Es scheint ein Konzept zu sein, das beim Lesen eines JavaScript-Buches ganz natürlich auftaucht.

Recommended Posts

Was ist ein Lambda-Ausdruck (Java)
Was ist ein Lambda-Ausdruck?
Was ist eine Java-Sammlung?
Was ist java
Was ist Java <>?
Was ist java
[Java] Lambda-Ausdruck
Java Lambda Ausdruck
Was ist eine Klasse in der Java-Sprache (3 /?)
Was ist eine Klasse in der Java-Sprache (1 /?)
Java Neutral Lambda Tabellenausdruck 1
Variationen von Java-Lambda-Ausdrücken
Was ist Java-Kapselung?
Java 8 Lambda-Ausdruck Feature
Java Lambda Ausdruck Memo
Was ist Java-Technologie?
Was ist Java API-Java?
Java Lambda Ausdruck [Notiz schreiben]
Java 8 studieren (Lambda-Ausdruck)
Überprüfen Sie java8 ~ Lambda Typ ~
Wieder Java-Lambda-Ausdruck
[Java] Was ist flatMap?
Was ist ein Servlet?
[Java] Was ist ArrayList?
Was ist Java Assertion? Zusammenfassung.
Was ist eine Wrapper-Klasse?
Was ist ein Ruby-Modul?
Was ist ein Gleitkomma?
[Java] Funktionsschnittstelle / Lambda-Ausdruck
Was ist ein aussagekräftiger Kommentar?
Java8-Stream, Zusammenfassung des Lambda-Ausdrucks
Was ist eine JAR-Datei?
[Java] Was ist jaee j2ee?
[Java] Was ist Klassenvererbung?
Was ist Fat⁉ enum?
[Java-Grundlagen] Was ist Klasse?
Was ist Java-Fluchtanalyse?
Was ist JVM (Java Virtual Machine)?
Weisen Sie Variablen Java8-Lambda-Ausdrücke zu und verwenden Sie sie erneut
Wie langsam ist Javas Scanner?
Ist Java unter AWS Lambda langsam?
Java Basic Learning Content 9 (Lambda-Ausdruck)
Was ist Thread-sicher (mit Java)
Was ist ein Ausschnitt in der Programmierung?
Was ist ein Boolescher Spaltentyp?
Was ist eine Referenztypvariable?
[Java] Was ist die Ausnahme für gleichzeitige Änderungen?
Java Calendar ist kein Singleton.
Was ist ein zweidimensionales Ruby-Array?
Was ist ein Terminal? -Absoluter Pfad & relativer Pfad-
Was ist eine Spring Boot-Originaldatei?
Lassen Sie uns nun den Java-Lambda-Ausdruck rekapitulieren
[Für Programmieranfänger] Was ist eine Methode?
Was ist das beste Lesen von Dateien (Java)
Was ist Java und Entwicklungsumgebung (MAC)
Was ist die Hauptmethode in Java?
[Rails] Was ist ein Punkt (.) Oder ein Doppelpunkt (:)?
Was ist Cubby?