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.)
Próbuję zmienić niektóre pętle for-each na forEach()metody lambda, aby odkryć możliwości wyrażeń lambda. Wydaje się, że możliwe jest: ArrayList<Player> playersOfTeam = new ArrayList<Player>(); for (Player player : players) { if (player.getTeam().equals(teamName)) { playersOfTeam.add(player); } } Z lambdą forEach() players.forEach(player->{if (player.getTeam().equals(teamName)) {playersOfTeam.add(player);}}); Ale następny nie działa: for (Player player : players) …
Mam poniższy kod, który jest trochę brzydki dla wielu sprawdzeń zerowych. String s = null; if (str1 != null) { s = str1; } else if (str2 != null) { s = str2; } else if (str3 != null) { s = str3; } else { s = str4; } …
Według źródeł, które znalazłem, wyrażenie lambda jest zasadniczo implementowane przez kompilator, tworząc klasę z przeciążonym operatorem wywołania funkcji i zmiennymi, do których się odwołujemy jako składowymi. Sugeruje to, że rozmiar wyrażeń lambda jest różny, a przy wystarczającej liczbie zmiennych odwołań, rozmiar może być dowolnie duży . std::functionPowinien mieć stały rozmiar …
Próbuję zrozumieć ifPresent()metodę OptionalAPI w Javie 8. Mam prostą logikę: Optional<User> user=... user.ifPresent(doSomethingWithUser(user.get())); Ale to powoduje błąd kompilacji: ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here) Oczywiście mogę zrobić coś takiego: if(user.isPresent()) { doSomethingWithUser(user.get()); } Ale to jest dokładnie jak zagracony nullczek. Jeśli zmienię kod na ten: user.ifPresent(new Consumer<User>() { …
W poniższym kodzie pierwsze wywołanie foojest niejednoznaczne i dlatego nie można skompilować. Drugi, z dodanym +przed lambdą , jest wynikiem przeciążenia wskaźnika funkcji. #include <functional> void foo(std::function<void()> f) { f(); } void foo(void (*f)()) { f(); } int main () { foo( [](){} ); // ambiguous foo( +[](){} ); // …
Chciałbym uzyskać informacje o tym, jak poprawnie myśleć o domknięciach std::functionw C ++ 11 oraz o tym, jak są one implementowane i jak obsługiwana jest pamięć. Chociaż nie wierzę w przedwczesną optymalizację, mam zwyczaj uważnego rozważania wpływu moich wyborów na wydajność podczas pisania nowego kodu. Zajmuję się również sporą ilością …
Mam bibliotekę Java innej firmy, która jest obiektem z takim interfejsem: public interface Handler<C> { void call(C context) throws Exception; } Jak mogę zwięźle zaimplementować to w Kotlin, podobnie jak anonimowa klasa Java, taka jak ta: Handler<MyContext> handler = new Handler<MyContext> { @Override public void call(MyContext context) throws Exception { …
Dlaczego nie mogę używać wyrażeń lambda podczas debugowania w oknie „Szybki podgląd”? UPD: patrz także http://blogs.msdn.com/b/jaredpar/archive/2009/08/26/why-no-linq-in-debugger-windows.aspx http://blogs.msdn.com/b/jaredpar/archive/2010/06/02/why-is-linq-absent-from-debugger-windows-part-2.aspx
Piszę kod w ten sposób, robiąc szybki i brudny czas: var sw = new Stopwatch(); sw.Start(); for (int i = 0; i < 1000; i++) { b = DoStuff(s); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); Z pewnością istnieje sposób, aby wywołać ten kawałek kodu czasowego jako fantazyjne-schmancy .NET 3.0 lambda zamiast (nie daj …
Chcę wiedzieć, co [=]robi? Oto krótki przykład template <typename T> std::function<T (T)> makeConverter(T factor, T offset) { return [=] (T input) -> T { return (offset + input) * factor; }; } auto milesToKm = makeConverter(1.60936, 0.0); Jak kod działałby z []zamiast [=]? zakładam, że std::function<T (T)> oznacza prototyp funkcji, …
Bawiłem się lambdami C ++ i ich niejawną konwersją na wskaźniki funkcji. Moim początkowym przykładem było użycie ich jako wywołania zwrotnego dla funkcji ftw. Działa to zgodnie z oczekiwaniami. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const struct stat *sb, int …
Widziałem wczoraj fragment kodu w jednej z odpowiedzi na StackOverflow, który mnie zaintrygował. To było coś takiego: List<string> myList = new List<string> {"aBc", "HELLO", "GoodBye"}; myList.ForEach(d=>d.ToLower()); Miałem nadzieję, że uda mi się go użyć do przekonwertowania wszystkich elementów w myList na małe litery. Jednak tak się nie dzieje ... po …
Właśnie zastąpiłem sw poniższym wyrażeniu lambda przez _: s -> Integer.parseInt(s) Kompilator Eclipse mówi: „_” nie powinno być używane jako identyfikator, ponieważ jest to zastrzeżone słowo kluczowe od poziomu źródła od 1.8. Nie znalazłem żadnego wyjaśnienia w JLS §3.9 Struktura leksykalna / Słowa kluczowe.
Czym jest ta „Lambda”, o której wszyscy mówią? Wydaje się, że wielu ludzi to uwielbia, ale wszystko, co mogę z tego wyciągnąć, to po prostu sposób na upchanie wielu linii kodu w jednym wyrażeniu. Czy ktoś może mnie oświecić na temat jego prawdziwej wartości?
Czy ktoś mógłby dobrze opisać, czym jest Lambda? Mamy dla nich tag i dotyczą one tajemnic pytania w języku C #, ale przede wszystkim nie znalazłem dobrej definicji i wyjaśnienia, czym one są.
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.