Pytania otagowane jako lambda

NIE UŻYWAJ DO USŁUGI AWS (do tych pytań użyj [aws-lambda!) Lambda to anonimowe funkcje lub zamknięcia w językach programowania, takich jak Lisp, C #, C ++, Lua, Python, Ruby, JavaScript lub Java. (Również wyrażenie lambda.)


5
Jak uzyskać adres funkcji C ++ lambda w samej lambda?
Próbuję dowiedzieć się, jak uzyskać w sobie adres funkcji lambda. Oto przykładowy kod: []() { std::cout << "Address of this lambda function is => " << ???? }(); Wiem, że potrafię uchwycić lambda w zmiennej i wydrukować adres, ale chcę to zrobić w miejscu, gdy wykonuje się ta anonimowa funkcja. …
53 c++  c++11  lambda  c++14  c++17 

4
Dlaczego typ zwracanej wartości lambda nie jest sprawdzany podczas kompilacji?
Użyte odwołanie do metody ma typ zwracany Integer. Jednak niezgodność Stringjest dozwolona w poniższym przykładzie. Jak naprawić withdeklarację metody, aby uzyskać bezpieczny typ referencyjny metody bez ręcznego rzutowania? import java.util.function.Function; public class MinimalExample { static public class Builder<T> { final Class<T> clazz; Builder(Class<T> clazz) { this.clazz = clazz; } static …

6
Czy istnieje sposób zadeklarowania C # lambda i natychmiastowe wywołanie?
Można zadeklarować funkcję lambda i natychmiast ją wywołać: Func<int, int> lambda = (input) => { return 1; }; int output = lambda(0); Zastanawiam się, czy można to zrobić w jednym wierszu, np. Coś takiego int output = (input) => { return 1; }(0); co daje błąd kompilatora „Oczekiwana nazwa metody”. …
29 c#  lambda 


2
Kiedy „to” jest uchwycone przez lambdę, czy musi to być użyte jawnie?
Przykłady, które znalazłem, że chwytanie thisw lambda używa tego wprost; na przykład: capturecomplete = [this](){this->calstage1done();}; Ale wydaje się, że możliwe jest również użycie go w sposób dorozumiany; na przykład: capturecomplete = [this](){calstage1done();}; Przetestowałem to w g ++ i skompilowałem. Czy to jest standardowy C ++? (a jeśli tak, to która …

1
Dlaczego mogę zadeklarować zmienną podrzędną o takiej samej nazwie jak zmienna w zakresie nadrzędnym?
Niedawno napisałem jakiś kod, w którym nieumyślnie ponownie użyłem nazwy zmiennej jako parametru akcji zadeklarowanej w funkcji, która już ma zmienną o tej samej nazwie. Na przykład: var x = 1; Action<int> myAction = (x) => { Console.WriteLine(x); }; Kiedy zauważyłem duplikację, zdziwiłem się, widząc, że kod został skompilowany i …

3
Różnica w zachowaniu zmiennego wychwytywania funkcji lambda z odniesienia do zmiennej globalnej
Stwierdziłem, że wyniki są różne w różnych kompilatorach, jeśli użyję lambda do przechwycenia odwołania do zmiennej globalnej za pomocą słowa kluczowego podlegającego modyfikacji, a następnie zmodyfikowania wartości w funkcji lambda. #include <stdio.h> #include <functional> int n = 100; std::function<int()> f() { int &m = n; return [m] () mutable -> …


3
Wartości wartości zamknięcia lambda można przekazać jako parametry referencyjne wartości
Odkryłem, że lvaluezamknięcia lambda zawsze można przekazać jako rvalueparametry funkcji. Zobacz następującą prostą demonstrację. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works // Case 2: passing a `lvalue` function …

3
Przeciąż funkcję lambda
Jak przeciążyć prostą lokalną funkcję lambda? SSE oryginalnego problemu: #include <iostream> #include <map> 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<char, int> table{ {'a', 0}, {'b', 1}, {'c', …

1
Czy zgodnie z normą gwarantowana lambda bez wychwytywania jest pusta?
Poszukuję sposobu na identyfikację pustych (niewychwyconych) lambd z innych lambd w funkcji szablonu. Obecnie używam C ++ 17, ale jestem również ciekawy odpowiedzi na C ++ 20. Mój kod wygląda następująco: template<typename T> auto func(T lambda) { // The aguments of the lambdas are unknown if constexpr (/* is captureless …
12 c++  lambda  c++17  c++20 

1
Dlaczego parametr typu jest silniejszy niż parametr metody?
Dlaczego jest public <R, F extends Function<T, R>> Builder<T> withX(F getter, R returnValue) {...} bardziej rygorystyczne public <R> Builder<T> with(Function<T, R> getter, R returnValue) {...} Jest to kontynuacja Dlaczego nie jest sprawdzany typ zwrotu lambda w czasie kompilacji . Znalazłem metodę withX()podobną .withX(MyInterface::getLength, "I am not a Long") produkuje żądany …

3
Wybór sygnatury metody dla wyrażenia lambda z wieloma pasującymi typami docelowymi
Odpowiadałem na pytanie i wpadłem na scenariusz, którego nie potrafię wyjaśnić. Rozważ ten kod: interface ConsumerOne<T> { void accept(T a); } interface CustomIterable<T> extends Iterable<T> { void forEach(ConsumerOne<? super T> c); //overload } class A { private static CustomIterable<A> iterable; private static List<A> aList; public static void main(String[] args) { …
11 java  generics  lambda  javac  ecj 

1
Odwołanie do metody i informacje ogólne w Javie-8
Mam problem z odniesieniem do metody w połączeniu z typami rodzajowymi. Mamy kod, w którym musimy wywołać przeciążoną metodę, ale błąd kończy się niepowodzeniem: Nie można rozwiązać wartości m1 () Uprościłem swój problem, aby wyjaśnić, gdzie leży problem. Następujący kod kończy się niepowodzeniem: public class Test { void test() { …
11 java  generics  lambda  java-8 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.