JavaRush /Blog Java /Random-FR /Pause café #150. Étudions des exemples d'expressions lamb...

Pause café #150. Étudions des exemples d'expressions lambda en Java. 7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA

Publié dans le groupe Random-FR

Exemples d'apprentissage d'expressions lambda en Java

Source : Medium Dans cet article, nous examinerons les expressions lambda, la base de la programmation fonctionnelle en Java. Pause café #150.  Étudions des exemples d'expressions lambda en Java.  7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA - 1

Syntaxe des expressions Lambda

La syntaxe des expressions lambda est intuitive, facile à comprendre et à utiliser. Une expression lambda se compose de :
  1. Paramètres d'entrée
  2. flèche d'opérateur
  3. bloc d'expressions/instructions
Le format général est le suivant :
<input-params> -> <function-code>

Exemples d'expressions lambda

Les expressions lambda sont mieux comprises à travers des exemples, examinons donc quelques-uns d'entre eux.

1. N'accepte pas l'entrée et ne renvoie pas la sortie

Une simple expression lambda ne prend aucune entrée et ne renvoie aucune sortie : il s'agit littéralement d'un simple bloc de code qui s'exécute sans aucun contexte.
() -> System.out.println("Here I am!");
Spécifier () au début, à la position des paramètres d'entrée, signifie qu'aucun paramètre n'est transmis (comme avec les parenthèses vides qui suivent une méthode qui n'a aucun paramètre).

2. Accepte une seule entrée, ne renvoie aucune sortie

Pour qu'une expression lambda prenne un paramètre, nous le plaçons à la position des paramètres d'entrée :
name -> System.out.println("Here you are too, " + name +  "!");
NOTE : Si nous avons un paramètre d'entrée, nous pouvons omettre les parenthèses. On peut aussi préciser (nom), c'est tout à fait acceptable.

3. Accepte plusieurs entrées, ne renvoie aucune sortie

Lorsque nous passons plusieurs paramètres d'entrée à une expression lambda, nous devons :
  • mettre les paramètres entre parenthèses
  • utilisez une virgule pour les séparer
(name, food) -> System.out.println("So " + name + " enjoys eating " + food + "... interesting!");

4. Contient plusieurs instructions dans une section de code

Le stockage des expressions lambda dans des instructions sur une seule ligne est considéré comme une bonne pratique. Mais vous pouvez également utiliser plusieurs lignes :
() -> {
  System.out.println("The owl and the pussycat went to sea");
  System.out.println("in a beautiful pea green boat");
}

5. Les types de retour ne sont jamais spécifiés

Comme vous l'avez peut-être remarqué, lors de la définition d'une expression lambda, aucun type de retour n'est spécifié. Voici un exemple :
() -> System.out.println("I don't return anything!")
Et encore un :
() -> "I return this String!"
Les deux exemples de code sont presque identiques, mais le deuxième lambda renvoie une chaîne. Veuillez garder cela à l'esprit lorsque vous les utilisez. Bien entendu, le compilateur comprendra la différence entre eux grâce à l’utilisation conditionnelle de descripteurs de fonctions.

6. L'inférence de type est appliquée automatiquement lorsque cela est possible

Pour déterminer le type, le compilateur utilisera l'inférence de type. Pour ce faire, il examine le contexte d'exécution de l'expression lambda. Pour le développeur, cela signifie qu'il n'aura pas à se soucier de la conversion vers un type spécifique.

7. Notation du descripteur de fonction

Lorsque nous réfléchissons aux types auxquels une expression lambda peut être attribuée, il est très utile d'utiliser des descripteurs de fonction. Un handle de fonction est essentiellement une signature de méthode fournie par une expression (ou méthode) lambda. Sa syntaxe est presque la même que celle des expressions lambda, sauf qu'au lieu d'une section de code, il existe une section de type de sortie. Voici un exemple :
<input-parameter-types> -> <output-parameter-type>

Exemples de descripteurs de fonctions

Voici quelques exemples de descripteurs de fonctions : () -> () Une méthode qui ne prend aucun paramètre d'entrée et ne renvoie pas de valeur. (String) -> () Méthode qui accepte un paramètre d'entrée et ne renvoie pas de valeur. () -> (int, float) Une méthode qui ne prend aucun paramètre d'entrée et renvoie un int et un float(int[]) -> . (SortedMap<Character, Integer>) Méthode qui prend un tableau int et renvoie un SortedMap de Character à Integer . Avoir des descripteurs de fonction facilite l'évaluation de la compatibilité des types lorsque l'on considère les types cibles que nous pouvons utiliser pour une expression lambda.

Conclusion

Comme vous pouvez le constater, les expressions lambda constituent un moyen simple et efficace d’encapsuler un comportement. C'est l'un des fondements du paradigme de programmation fonctionnelle introduit en Java avec la sortie du JDK 8.

7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA

Source : Better Programming C'est difficile à croire, mais plusieurs années plus tard, je rencontre encore des gens qui ne connaissent pas ces fonctionnalités intéressantes d'IntelliJ IDEA.

1.Trouvez n'importe quoi

Il est assez difficile de se souvenir de chaque combinaison de touches et de suivre tout ce qu'IntelliJ IDEA peut faire. C'est pourquoi j'utilise souvent la recherche dans IntelliJ IDEA. Cela m'aide à trouver les éléments de menu, les outils, les paramètres et même les fichiers dont j'ai besoin au même endroit. Pause café #150.  Étudions des exemples d'expressions lambda en Java.  7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA - 2

2. Sachez où vous êtes

Avant de trouver cette fonctionnalité, j'ai utilisé le bouton « Sélectionner un fichier ouvert » pour afficher le fichier actuellement édité dans l'arborescence du projet. Pause café #150.  Étudions des exemples d'expressions lambda en Java.  7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA - 3Maintenant, IntelliJ IDEA fait cela pour moi. Ce n'est pas une option par défaut, vous devrez donc la définir pour chaque projet nouveau ou existant. Pause café #150.  Étudions des exemples d'expressions lambda en Java.  7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA - 4

3. Optimisation SQL

Saviez-vous que le plugin de base de données par défaut de votre IDE est plus qu'un simple exécuteur SQL ? Étant donné que la couche de persistance (E/S) est toujours la partie la plus lente de l'application, je m'assure toujours que mes requêtes SQL ont un bon plan d'exécution lorsque je travaille avec des bases de données relationnelles. Pause café #150.  Étudions des exemples d'expressions lambda en Java.  7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA - 5

4. Édition multiligne

Vous avez peut-être déjà utilisé cette fonctionnalité dans Sublime Text Editor. Pause café #150.  Étudions des exemples d'expressions lambda en Java.  7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA - 6

5. Revenir en arrière/en avant

En fait, je reviens souvent là où j'étais avant en appuyant sur les boutons Précédent ou Suivant. Pause café #150.  Étudions des exemples d'expressions lambda en Java.  7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA - 7Reculer/avancer : ⌥⌘+flèche gauche/droite (Ctrl+Alt+flèche gauche/droite pour Win/Linux). Pour ouvrir les fichiers récents, appuyez sur ⌘E (Ctrl+E pour Win/Linux).

6. Signets

Je mets en favoris les parties importantes du code afin de pouvoir m'y référer rapidement à tout moment. Pause café #150.  Étudions des exemples d'expressions lambda en Java.  7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA - 8Pour accéder à un signet, appuyez sur ⌃+<numéro> (Ctrl+<numéro> pour Win/Linux). Je dirai tout de suite que je n'utilise pas plus de trois signets à la fois, car il devient alors difficile de se rappeler à quoi ils servent.

7. Un éditeur pour tout

J'avais l'habitude d'ouvrir d'autres éditeurs de texte comme Visual Studio Code ou Sublime pour enregistrer des parties de code, JSON, XML, puis créer un lien vers elles. Mais cela ne fait pas partie de la base de code (projet), et IntelliJ IDEA vous le rappelle clairement lorsque vous essayez de créer ou de modifier quelque chose comme ça. Ensuite, j'ai vu un de mes collègues utiliser des Snippets et j'ai réalisé à quel point c'était génial. Pause café #150.  Étudions des exemples d'expressions lambda en Java.  7 fonctionnalités les plus sous-estimées d'IntelliJ IDEA - 9Nouveau fichier Snippet : ⇧⌘N (Shift+Ctrl+N pour Win/Linux). Les extraits sont disponibles et synchronisés sur toutes les fenêtres de vos projets. Je les utilise souvent pour examiner et formater du JSON ou du SQL que j'ai obtenu ailleurs.

Ma recette secrète

La cerise sur le gâteau est une fonctionnalité qui me fait gagner beaucoup de temps de frappe chaque jour : Tabnine est un plugin JetBrains permettant de compiler du code Intellij IDEA alimenté par l'IA. C'est gratuit pour l'instant, mais dépêchez-vous, je ne pense pas que cela durera longtemps.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION