Passer d’un lambda à une expression est facile en utilisant un appel de méthode … public void GimmeExpression(Expression<Func> expression) { ((MemberExpression)expression.Body).Member.Name; // “DoStuff” } public void SomewhereElse() { GimmeExpression(() => thing.DoStuff()); } Mais je voudrais transformer le Func en une expression, seulement dans de rares cas … public void ContainTheDanger(Func dangerousCall) { try { dangerousCall(); […]
Comment fonctionne lambda générique (mot auto clé auto comme type d’argument) dans la norme C ++ 14? Est-il basé sur des modèles C ++ où chaque compilateur de type d’argument génère une nouvelle fonction avec le même corps mais remplace les types (polymorphism à la compilation) ou est-il plus similaire aux génériques de Java (type […]
Une expression lambda C # peut-elle inclure plusieurs instructions? (Modifier: comme indiqué dans plusieurs réponses ci-dessous, cette question portait à l’origine sur les “lignes” plutôt que sur les “déclarations”.)
En Java, est-il possible qu’un lambda accepte plusieurs types différents? Ie: variable unique fonctionne: Function adder = i -> i + 1; System.out.println (adder.apply (10)); Varargs travaille aussi: Function multiAdder = ints -> { int sum = 0; for (Integer i : ints) { sum += i; } return sum; }; //…. System.out.println ((multiAdder.apply (new […]
J’ai eu l’impression que le type d’un lambda est un pointeur de fonction. Lorsque j’ai effectué le test suivant, je l’ai trouvé faux ( démo ). #define LAMBDA [] (int i) -> long { return 0; } int main () { long (*pFptr)(int) = LAMBDA; // ok auto pAuto = LAMBDA; // ok assert(typeid(pFptr) == […]
Disons que j’ai l’interface fonctionnelle suivante dans Java 8: interface Action { U execute(T t); } Et dans certains cas, j’ai besoin d’une action sans arguments ni type de retour. Alors j’écris quelque chose comme ceci: Action a = () -> { System.out.println(“Do nothing!”); }; Cependant, cela me donne une erreur de compilation, je dois […]
Je suis tombé sur un nouveau terme nommé Interface fonctionnelle dans Java 8. Je ne pouvais trouver qu’une seule utilisation de cette interface en travaillant avec des expressions lambda . Java 8 fournit des interfaces fonctionnelles intégrées et si nous voulons définir une interface fonctionnelle, nous pouvons utiliser l’annotation @FunctionalInterface . Cela nous permettra de […]
J’utilise java lambda pour sortinger une liste. Comment puis-je le sortinger de manière inverse? J’ai vu ce post , mais je veux utiliser java 8 lambda. Voici mon code (j’ai utilisé * -1) comme un hack Arrays.asList(files).stream() .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName())) .sorted(new Comparator() { public int compare(File o1, File o2) { int answer; if (o1.lastModified() […]
J’ai cette requête: int maxShoeSize=Workers.Where(x=>x.CompanyId==8).Max(x=>x.ShoeSize); Qu’y aura-t-il dans maxShoeSize si l’entreprise 8 n’a pas de personnel du tout? METTRE À JOUR: Comment puis-je modifier la requête pour obtenir 0 et pas une exception?
Les expressions lambda ont-elles d’autres utilisations que l’enregistrement de lignes de code? Lambdas propose-t-il des fonctionnalités spécifiques pour résoudre des problèmes difficiles à résoudre? L’utilisation typique que j’ai vue est qu’au lieu d’écrire ceci: Comparator byName = new Comparator() { @Override public int compare(Developer o1, Developer o2) { return o1.getName().compareTo(o2.getName()); } }; Nous pouvons utiliser […]