Qu'est-ce qu'une expression lambda (Java)

Je ne pouvais pas comprendre l'expression lambda, donc je l'ai simplifiée et compris le résultat.

Fonction anonyme

Tout d'abord, un extrait de Wikipedia sur les fonctions anonymes.

Fonction anonyme (anglais: fonction anonyme ou fonction sans nom) [1] dans un langage de programmation est une fonction définie sans nom.

Il existe différentes méthodes pour exprimer des fonctions anonymes, mais ces dernières années [2] le courant dominant est la notation d'expression lambda.

(Wikipédia (fonction https://ja.wikipedia.org/wiki/anonymous))

Style Lambda

En d'autres termes, une expression lambda est un moyen de représenter une fonction anonyme. ("->" Un tel gars) → Une expression lambda est une fonction définie sans être nommée.

Au fait, lors de l'écriture en Java, cela ressemble à ceci. (Extrait de la fonction anonyme de Wikipédia.)

sample.java


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

↑ Pour expliquer avec cet exemple

Interface fonctionnelle

Qu'utilisez-vous en premier lieu les fonctions anonymes? C'est pourquoi l'interface fonctionnelle sort. En gros, c'est une interface à laquelle des fonctions (voir expressions et méthodes lambda) peuvent être affectées.

Par exemple, l'interface BiFunction <T, U, R>

Paramètres de type: T --Type du premier argument de la fonction U --Type du deuxième argument de la fonction R - Type de résultat de la fonction → Une interface qui vous permet d'affecter une fonction qui renvoie une valeur de retour avec deux arguments.

En d'autres termes, si vous affectez la fonction anonyme de l'exemple précédent à cette interface et appelez la méthode (apply) définie dans cette interface, le traitement de la fonction anonyme sera appelé. ↓ Quant au résultat de ceci, le résultat 2 + 3 est sorti en standard car 2 et 3 sont passés comme arguments à appliquer.

sample2.java


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

Je n'ai pas encore pensé à attribuer des fonctions à des variables en Java, donc je pense que c'est difficile à comprendre. Cela semble être un concept qui apparaît tout naturellement lors de la lecture d'un livre JavaScript.

Recommended Posts

Qu'est-ce qu'une expression lambda (Java)
Qu'est-ce qu'une expression lambda?
Qu'est-ce qu'une collection Java?
Qu'est-ce que 'java
Qu'est-ce que Java <>?
Qu'est-ce que 'java
[Java] Expression Lambda
Expression lambda Java
Qu'est-ce qu'une classe en langage Java (3 /?)
Qu'est-ce qu'une classe en langage Java (1 /?)
expression 1 de la table lambda neutre java
Variations d'expressions lambda Java
Qu'est-ce que l'encapsulation Java?
Fonctionnalité d'expression lambda Java 8
mémo d'expression java lambda
Qu'est-ce que la technologie Java?
Qu'est-ce que Java API-java
expression lambda java [écriture de notes]
Etudier Java 8 (expression lambda)
Évaluer java8 ~ Type Lambda ~
Expression lambda Java à nouveau
[Java] Qu'est-ce que flatMap?
Qu'est-ce qu'un servlet?
[Java] Qu'est-ce que ArrayList?
Qu'est-ce que l'assertion Java? Résumé.
Qu'est-ce qu'une classe wrapper?
Qu'est-ce qu'un module Ruby?
Qu'est-ce qu'une virgule flottante?
[Java] Interface fonctionnelle / expression lambda
Qu'est-ce qu'un commentaire significatif?
Flux Java8, résumé de l'expression lambda
Qu'est-ce qu'un fichier JAR?
[Java] Qu'est-ce que jaee j2ee?
[Java] Qu'est-ce que l'héritage de classe?
Qu'est-ce que Fat⁉ enum?
[Notions de base Java] Qu'est-ce que la classe?
Qu'est-ce que l'analyse Java Escape?
Qu'est-ce que JVM (Java Virtual Machine)?
Attribuer des expressions lambda Java8 aux variables et les réutiliser
Quelle est la lenteur du scanner Java?
Java sur AWS Lambda est-il lent?
Contenu d'apprentissage de base Java 9 (expression lambda)
Qu'est-ce que Thread Safe (avec Java)
Qu'est-ce qu'un extrait de code en programmation?
Qu'est-ce qu'un type booléen de colonne?
Qu'est-ce qu'une variable de type référence?
[Java] Qu'est-ce que l'exception de modification simultanée?
Le calendrier Java n'est pas un singleton.
Qu'est-ce qu'un tableau bidimensionnel Ruby?
Qu'est-ce qu'un terminal? -Chemin absolu et chemin relatif-
Qu'est-ce qu'un fichier .original Spring Boot?
Récapitulons maintenant l'expression lambda Java
[Pour les débutants en programmation] Qu'est-ce qu'une méthode?
Quelle est la meilleure lecture de fichier (Java)
Qu'est-ce que Java et l'environnement de développement (MAC)
Quelle est la méthode principale en Java?
[Rails] Qu'est-ce qu'un point (.) Ou un deux-points (:)?
Qu'est-ce que Cubby