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

144
Понимание Spliterator, Collector и Stream в Java 8

У меня возникают проблемы понимания Streamинтерфейса в Java 8, особенно там , где он должен делать с Spliteratorи Collectorинтерфейсов. Моя проблема в том, что я пока просто не могу понять Spliteratorи Collectorинтерфейсы, и в результате Streamинтерфейс для меня все еще несколько неясен. Что такое...

142
Почему нельзя присвоить var анонимный метод?

У меня такой код: Func<string, bool> comparer = delegate(string value) { return value != "0"; }; Однако следующее не компилируется: var comparer = delegate(string value) { return value != "0"; }; Почему компилятор не может понять, что это Func<string, bool> ? Он принимает один...

142
Какого типа лямбда-выражения выводятся с помощью «auto» в C ++ 11?

У меня было ощущение, что тип лямбда - это указатель на функцию. Когда я выполнил следующий тест, я обнаружил, что это неправильно ( демо ). #define LAMBDA [] (int i) -> long { return 0; } int main () { long (*pFptr)(int) = LAMBDA; // ok auto pAuto = LAMBDA; // ok assert(typeid(pFptr) ==...

138
Как сортировать с лямбдой?

sort(mMyClassVector.begin(), mMyClassVector.end(), [](const MyClass & a, const MyClass & b) { return a.mProperty > b.mProperty; }); Я хотел бы использовать лямбда-функцию для сортировки пользовательских классов вместо привязки метода экземпляра. Однако приведенный выше код дает ошибку:...

137
Необязательный orElse Необязательный в Java

Я работал с новым опциональным типом в Java 8 , и я столкнулся с тем, что кажется обычной операцией, которая не поддерживается функционально: "orElseOptional" Рассмотрим следующую схему: Optional<Result> resultFromServiceA = serviceA(args); if (resultFromServiceA.isPresent) return result;...

136
Является ли этот объект-расширение-срок-закрытие ошибкой компилятора C #?

Я отвечал на вопрос о возможности закрытия (законно) продления времени жизни объектов, когда столкнулся с каким-то чрезвычайно любопытным генератором кода со стороны компилятора C # (4.0, если это имеет значение). Самое короткое повторение, которое я могу найти, следующее: Создайте лямбду, которая...

135
Можно ли выяснить тип параметра и тип возврата лямбда?

Учитывая лямбду, возможно ли выяснить ее тип параметра и тип возвращаемого значения? Если да, то как? В принципе, я хочу, lambda_traitsкоторый может быть использован следующими способами: auto lambda = [](int i) { return long(i*10); }; lambda_traits<decltype(lambda)>::param_type i; //i should...

134
Переменная, используемая в лямбда-выражении, должна быть окончательной или фактически окончательной.

Переменная, используемая в лямбда-выражении, должна быть окончательной или фактически окончательной. Когда я пытаюсь использовать, calTzон показывает эту ошибку. private TimeZone extractCalendarTimeZoneComponent(Calendar cal, TimeZone calTz) { try {...

133
Что такое «тип SAM» в Java?

Читая спецификацию Java-8, я постоянно вижу ссылки на «типы SAM». Я не смог найти четкого объяснения, что это такое. Что такое тип SAM и каков пример его

132
Использование делегата действия в C # [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 2 года назад . Улучшить этот вопрос Я работал с делегатами...

125
Лямбда-захват и параметр с тем же именем - кто затеняет другого? (clang против gcc)

auto foo = "You're using g++!"; auto compiler_detector = [foo](auto foo) { std::puts(foo); }; compiler_detector("You're using clang++!"); clang ++ 3.6.0 и новее распечатайте "Вы используете clang ++!" и предупредить о неиспользовании захвата foo . g ++ 4.9.0 и новее распечатайте «Вы используете g...

124
Почему должно быть приведено лямбда-выражение, если оно предоставлено как простой параметр делегата

Возьмите метод System.Windows.Forms.Control.Invoke (метод делегата) Почему это дает ошибку времени компиляции: string str = "woop"; Invoke(() => this.Text = str); // Error: Cannot convert lambda expression to type 'System.Delegate' // because it is not a delegate type Тем не менее, это отлично...

124
Захватывают ли лямбда-выражения c ++ 11 переменные, которые они не используют?

Когда я использую, [=]чтобы указать, что я хотел бы, чтобы все локальные переменные были захвачены по значению в лямбде, приведет ли это к тому, что все локальные переменные в копируемой функции или только все локальные переменные , которые используются лямбда ? Так, например, если у меня есть:...

123
`break` и` continue` в `forEach` в Котлине

Котлин имеет очень хорошие функции перебора, как forEachили repeat, но я не в состоянии сделать breakи continueоператоры работают с ними (как местный , так и нелокальным): repeat(5) { break } (1..5).forEach { continue@forEach } Цель состоит в том, чтобы имитировать обычные циклы с функциональным...

122
Почему некоторые лямбда-выражения C # компилируются в статические методы?

Как вы можете видеть в приведенном ниже коде, я объявил Action<>объект как переменную. Кто-нибудь, пожалуйста, дайте мне знать, почему этот делегат метода действия ведет себя как статический метод? Почему он возвращается trueв следующем коде? Код: public static void Main(string[] args) {...

121
Скопируйте поток, чтобы избежать «поток уже обработан или закрыт»

Я хотел бы продублировать поток Java 8, чтобы иметь возможность работать с ним дважды. Я могу collectкак список и получать новые потоки из этого; // doSomething() returns a stream List<A> thing = doSomething().collect(toList()); thing.stream()... // do stuff thing.stream()... // do other...