इस कोड का उपयोग करएक अंडरस्कोर
(1 to 30).foreach { x =>
println(x)
println
}
मैं क्या उम्मीद थी करता है एक लैम्ब्डा अभिव्यक्ति का निर्माण: यह रिक्त स्थान के साथ बीच-बीच में 1
30
के प्रत्येक, प्रिंट करता है। मैं यहाँ क्या हो रहा है पर बहुत स्पष्ट कर रहा हूँ, मुझे लगता है कि: मैं एक गुमनाम समारोह है कि पहले अपने तर्क प्रिंट, और फिर एक रिक्त पंक्ति प्रिंट गुजर रहा हूँ।
(1 to 30).foreach {
println _
println
}
यह मेरे लिए बराबर दिखता है:
क्या मुझे समझ नहीं आता क्यों यह भी ऐसा ही नहीं करता है। अंडरस्कोर को फ़ंक्शन के लिए पहले और एकमात्र तर्क का प्रतिनिधित्व करना चाहिए; और फ़ंक्शन इसके तर्क को प्रिंट करता है, और फिर रिक्त रेखा प्रिंट करता है। लेकिन जब मैं इस दूसरे संस्करण को चलाता हूं, तो मुझे रिक्त रेखाएं नहीं मिलती हैं।
क्या इस अंतर का कारण बनता है?