मैं जावा 8 के साथ कैसे लिख सकते हैं बंद एक विधि है कि तर्क के रूप में एक समारोह लेने के लिए और मूल्य के रूप में वापसी समारोह का समर्थन के साथ?लैम्ब्डा अभिव्यक्ति और उच्च क्रम कार्यों
उत्तर
जावा लैम्ब्डा एपीआई में मुख्य वर्ग java.util.function.Function है।
आप इस इंटरफ़ेस के संदर्भ का उपयोग उसी तरह कर सकते हैं जैसे आप अन्य सभी संदर्भों के साथ करेंगे: इसे चर के रूप में बनाएं, गणना के परिणामस्वरूप इसे वापस करें और इसी तरह।
यहाँ काफी सरल उदाहरण है जो आपकी मदद कर सकते है:
public class HigherOrder {
public static void main(String[] args) {
Function<Integer, Long> addOne = add(1L);
System.out.println(addOne.apply(1)); //prints 2
Arrays.asList("test", "new")
.parallelStream() // suggestion for execution strategy
.map(camelize) // call for static reference
.forEach(System.out::println);
}
private static Function<Integer, Long> add(long l) {
return (Integer i) -> l + i;
}
private static Function<String, String> camelize = (str) -> str.substring(0, 1).toUpperCase() + str.substring(1);
}
आप और अधिक तो 1 पैरामीटर पारित करने के लिए की जरूरत है, तो कृपया compose
विधि में एक बार देख ले, लेकिन इसके उपयोग काफी मुश्किल है।
सामान्य रूप से जावा में मेरी राय बंद और लैम्ब्डा से मूल रूप से वाक्यविन्यास-चीनी है, और उनमें कार्यात्मक प्रोग्रामिंग की सभी क्षमताओं की प्रतीत नहीं होती है।
उत्तर के लिए बहुत बहुत धन्यवाद! क्या आप जानते हैं कि यह लागू है या नहीं: जोड़ें (8) (10) क्योंकि यह बहुत उबाऊ है: जोड़ें (8) .apply (10) – xdevel2000
दुर्भाग्य से ऐसा लगता है कि कम से कम नहीं - अब – n1ckolas
n1ckolas, क्षमा करें , मुझे कोई रचना विधि नहीं मिल रही है ... मैं अधिक पैरामीटर के साथ एक फ़ंक्शन लिखने के लिए उदाहरण कहां देख सकता हूं? – xdevel2000
- 1. कॉलिंग Clojure उच्च क्रम कार्यों
- 2. लैम्ब्डा अभिव्यक्ति
- 3. लैम्ब्डा अभिव्यक्ति और मानचित्र
- 4. वक्तव्य लैम्ब्डा अभिव्यक्ति लैम्ब्डा
- 5. लैम्ब्डा अभिव्यक्ति
- 6. लैम्ब्डा अभिव्यक्ति
- 7. लैम्ब्डा अभिव्यक्ति
- 8. लैम्ब्डा अभिव्यक्ति
- 9. लैम्ब्डा अभिव्यक्ति
- 10. लैम्ब्डा अभिव्यक्ति
- 11. अभिव्यक्ति/लैम्ब्डा
- 12. लैम्ब्डा अभिव्यक्ति
- 13. लैम्ब्डा अभिव्यक्ति
- 14. लैम्ब्डा अभिव्यक्ति
- 15. अभिव्यक्ति लैम्ब्डा बनाम स्टेटमेंट लैम्ब्डा
- 16. लैम्ब्डा समारोह से लैम्ब्डा अभिव्यक्ति
- 17. का उपयोग लैम्ब्डा कार्यों
- 18. सिंगल लाइन लैम्ब्डा अभिव्यक्ति
- 19. कैसे एक लैम्ब्डा अभिव्यक्ति
- 20. लैम्ब्डा अभिव्यक्ति ग्रुप सी #
- 21. सी # डिबगिंग कार्यों कि लैम्ब्डा शामिल भाव
- 22. जावा लैम्ब्डा अभिव्यक्ति
- 23. सी # लैम्ब्डा अभिव्यक्ति स्पीड
- 24. लैम्ब्डा अभिव्यक्ति अप्रयुक्त
- 25. वीबी.नेट लैम्ब्डा अभिव्यक्ति
- 26. लैम्ब्डा अभिव्यक्ति संकलन
- 27. लैम्ब्डा अभिव्यक्ति में KeyValuePair
- 28. लैम्ब्डा अभिव्यक्ति: आधार प्रकार
- 29. एक लैम्ब्डा अभिव्यक्ति
- 30. गतिशील लैम्ब्डा अभिव्यक्ति कॉल
[जावा ड्राफ्ट विनिर्देश के लिए बंद (नील गफ्फर और पीटर वॉन डेर आह द्वारा)] (http://javac.info/) –
@Quoi वह वेबसाइट साल पहले मरने वाले प्रस्तावों से संबंधित है। जावा 8 कार्यान्वयन की प्रगति के लिए http://lambdafaq.org देखें –
@ मॉरीसनाफ्टालिन धन्यवाद –