Вопросы с тегом «lambda»

НЕ ИСПОЛЬЗУЙТЕ ДЛЯ СЕРВИСА AWS (используйте [aws-lambda] для этих вопросов!). Лямбды - это анонимные функции или замыкания в таких языках программирования, как Lisp, C #, C ++, Lua, Python, Ruby, JavaScript или Java. (Также лямбда-выражение.)

3
Почему компиляция в порядке, когда я использую метод Invoke, и не в порядке, когда я возвращаю Func <int, int> напрямую?
Я не понимаю этот случай: public delegate int test(int i); public test Success() { Func&lt;int, int&gt; f = x =&gt; x; return f.Invoke; // &lt;- code successfully compiled } public test Fail() { Func&lt;int, int&gt; f = x =&gt; x; return f; // &lt;- code doesn't compile } Почему компиляция …
28 c#  lambda  delegates 

2
Когда «this» захвачено лямбдой, нужно ли его использовать явно?
Примеры, которые я обнаружил, что захват thisв лямбде использует это явно; например: capturecomplete = [this](){this-&gt;calstage1done();}; Но кажется, что это также возможно использовать неявно; например: capturecomplete = [this](){calstage1done();}; Я проверил это в g ++, и это скомпилировано. Это стандарт C ++? (и если да, то какая версия), или это какая-то форма …

1
Почему я могу объявить дочернюю переменную с тем же именем, что и переменная в родительской области?
Недавно я написал некоторый код, в котором непреднамеренно использовал имя переменной в качестве параметра действия, объявленного внутри функции, в которой уже есть переменная с тем же именем. Например: var x = 1; Action&lt;int&gt; myAction = (x) =&gt; { Console.WriteLine(x); }; Когда я обнаружил дублирование, я был удивлен, увидев, что код …

3
Отличие поведения изменяемого захвата лямбда-функции от ссылки на глобальную переменную
Я обнаружил, что результаты в разных компиляторах различны, если я использую лямбду для захвата ссылки на глобальную переменную с изменяемым ключевым словом, а затем изменяю значение в лямбда-функции. #include &lt;stdio.h&gt; #include &lt;functional&gt; int n = 100; std::function&lt;int()&gt; f() { int &amp;m = n; return [m] () mutable -&gt; int { …


3
Значения лямбда-замыкания могут быть переданы как ссылочные параметры rvalue.
Я обнаружил, что lvalueлямбда-замыкания всегда можно передать в качестве rvalueпараметров функции. Смотрите следующую простую демонстрацию. #include &lt;iostream&gt; #include &lt;functional&gt; using namespace std; void foo(std::function&lt;void()&gt;&amp;&amp; t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works // Case 2: passing a `lvalue` …

3
Перегрузка лямбда-функции
Как перегрузить простую локальную лямбда-функцию? SSE оригинальной задачи: #include &lt;iostream&gt; #include &lt;map&gt; void read() { static std::string line; std::getline(std::cin, line); auto translate = [](int idx) { constexpr static int table[8]{ 7,6,5,4,3,2,1,0 }; return table[idx]; }; auto translate = [](char c) { std::map&lt;char, int&gt; table{ {'a', 0}, {'b', 1}, {'c', 2}, …

1
Стандартно ли гарантировано, что лямбда без захвата будет пустой?
Я ищу способ идентифицировать пустые (без захвата) лямбды из других лямбд в функции шаблона. В настоящее время я использую C ++ 17, но мне тоже интересно узнать ответы на C ++ 20. Мой код выглядит так: template&lt;typename T&gt; auto func(T lambda) { // The aguments of the lambdas are unknown …
12 c++  lambda  c++17  c++20 

1
Почему параметр типа сильнее параметра метода
Почему public &lt;R, F extends Function&lt;T, R&gt;&gt; Builder&lt;T&gt; withX(F getter, R returnValue) {...} более строгим, чем public &lt;R&gt; Builder&lt;T&gt; with(Function&lt;T, R&gt; getter, R returnValue) {...} Это продолжение того, почему лямбда-тип возврата не проверяется во время компиляции . Я нашел с помощью метода, withX()как .withX(MyInterface::getLength, "I am not a Long") выдает …

3
Выбор сигнатуры метода для лямбда-выражения с несколькими совпадающими типами целей
Я отвечал на вопрос и столкнулся со сценарием, который я не могу объяснить. Рассмотрим этот код: interface ConsumerOne&lt;T&gt; { void accept(T a); } interface CustomIterable&lt;T&gt; extends Iterable&lt;T&gt; { void forEach(ConsumerOne&lt;? super T&gt; c); //overload } class A { private static CustomIterable&lt;A&gt; iterable; private static List&lt;A&gt; aList; public static void main(String[] …
11 java  generics  lambda  javac  ecj 

1
Ссылка на метод и обобщение в Java-8
Я столкнулся с проблемой со ссылкой на метод в сочетании с общими типами. У нас есть код, где нам нужно вызвать перегруженный метод, но он завершается ошибкой: Не удается разрешить значение m1 () Я упростил свою проблему, чтобы было ясно, где проблема. Сбой следующего кода: public class Test { void …
11 java  generics  lambda  java-8 

5
C ++ троичное назначение лямбда
Есть идеи, почему следующий фрагмент не компилируется? Он жалуется с ошибкой «ошибка: операнды к?: Есть разные типы» auto lambda1 = [&amp;](T&amp; arg) { ... }; auto lambda2 = [&amp;](T&amp; arg) { ... }; auto lambda = condition ? lambda1 : lambda2;

2
Вызов лямбда неоднозначен, несмотря на явное указание типа возврата
Перегруженная функция должна принимать оба функтора, учитывая, что тип лямбды можно разрешить (можно преобразовать в std::function(пожалуйста, исправьте меня, если я ошибаюсь). Вопрос в том, почему ниже приведена ошибка компиляции, несмотря на то, что лямбда-тип явно определен? ( [&amp;]() -&gt; Type {}) Обратите внимание, что для моего текущего решения мне нужен …

6
Как найти самую последнюю дату по заданному значению карты в Java
У меня есть хэш-карта со значениями ниже, в значениях у меня дата в качестве строкового типа данных. Я хотел бы сравнить все даты, которые доступны на карте, и извлечь только одно значение ключа, которое имеет очень недавнюю дату. Я хотел бы сравнить со значениями, а не ключами. Я включил код …

3
Java Stream: фильтр с несколькими диапазонами
Я пытаюсь отфильтровать ресурс и исключить некоторые элементы на основе поля. Для исключения у меня есть набор (который содержит идентификатор, который должен быть исключен) и список (он содержит несколько диапазонов идентификаторов, которые необходимо исключить). Я написал приведенную ниже логику, и меня не устраивает 2-я логика фильтра. Есть ли лучший способ …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.