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.)
Dlaczego dostawcy wspierają tylko konstruktorów bez argonu? Jeśli obecny jest domyślny konstruktor, mogę to zrobić: create(Foo::new) Ale jeśli jedyny konstruktor przyjmuje String, muszę to zrobić: create(() -> new Foo("hello"))
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. …
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 …
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”. …
Nie rozumiem tej sprawy: public delegate int test(int i); public test Success() { Func<int, int> f = x => x; return f.Invoke; // <- code successfully compiled } public test Fail() { Func<int, int> f = x => x; return f; // <- code doesn't compile } Dlaczego kompilacja jest …
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 …
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 …
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 -> …
Znalazłem ten fragment kodu na GitHub, ale nie do końca go zrozumiałem: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Następnie: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is 2 …
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 …
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 …
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 …
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() { …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.