2013-05-31 16 views
47

Wyrażenia Lambda są dodawane w języku Java 8. Chcę zrozumieć, dlaczego jest to ważne. Co to znaczy dla programisty Javy, który jeszcze nie ma styczności z funkcjonalnymi idiomami programowania? Czy to znaczy, że mogę napisać kod, który działa lepiej lub skaluje się masowo, czy też sprawia, że ​​kod jest mniej szczegółowy. Albo wszystko.Wyrażenia Java Lambda

+0

Zająłem lekcje poświęcone organizacji języków programowania, jak powiedział mi mój profesor, że możesz sprawić, że twój kod będzie leniwy. Ty też, nadal nie rozumiem tego, czy "można dostać się na szczyt góry"? Ale tak naprawdę, to zdezorientowało mnie, nie mogłem się doczekać odpowiedzi. –

+0

Hmm jednym z zastosowań, jaki widzę, jest wybór środowiska wykonawczego i tworzenie funkcji. Załóżmy, że robisz coś dla obiektu i w zależności od tego, co zrobiłeś, musisz przekazać go jednej ze 100 metod lub jednej metodzie z 100 ifs, z lambdasem możesz napisać jedną metodę w locie bez żadnych ifs. – arynaq

+5

'E = hc/λ' !!! Cmon man !! – Tdorno

Odpowiedz

38

Oracle ma już tutorial na ten temat. Wymienia kilka wspaniałych przypadków użycia.

Zanim znalazłem łącze, miałem zamiar powiedzieć, że wyrażenia lambda pozwalają ci przekazać "funkcje" do kodu. Dzięki temu możesz łatwiej napisać kod, ponieważ potrzebowaliśmy do tego całego bałaganu interfejsów/klas abstrakcyjnych. Załóżmy na przykład, że masz kod, który ma złożoną logikę pętli/warunkową lub przepływ pracy. Na pewnym etapie chcesz zrobić coś innego. Używając wyrażeń lambda, możesz po prostu przekazać to "coś innego". Przeczytaj samouczek. To bardzo jasne.

+0

Jestem nieco zdezorientowany ponieważ używasz fraz - "* Zanim znalazłem link, zamierzałem powiedzieć, że *". Więc po znalezieniu linku Oracle Twoja opinia/myśl się zmieniła? Chodzi mi o to, że myślałeś źle lub "mniej" i po przeczytaniu tego linku zrozumiałeś, że jest w tym coś więcej. Powodem, dla którego pytam, jest dla mnie to, o czym wspomniałem wcześniej, było właściwe i istota tego związku, więc chcę wiedzieć, czy nie zdawałem sobie sprawy z pełnego potencjału wyrażeń lambda. – hagrawal

+0

Miałem na myśli, że to był mój język. Samouczek określa to lepiej –