मैं स्कैला सीखना शुरू कर रहा हूं और मैं स्कैला पाठ्यपुस्तक में प्रोग्रामिंग से एक स्निपेट में आया हूं जो मुझे समझ में नहीं आता है। उम्मीद कर रहा था कि कोई मेरी मदद कर सकता है?स्कैला को समझना: तर्कों को गुजरने के रूप में
यह प्रोग्रामिंग इन स्कैला, द्वितीय संस्करण से लिस्टिंग 9.1 से है।
object FileMatcher {
private def filesHere = (new java.io.File(".")).listFiles
}
private def filesMatching(matcher: String => Boolean) =
for (file <- filesHere; if matcher(file.getName)) yield file
def filesEnding(query: String) =
filesMatching(_.endsWith(query)) // ???
def filesContaining(query: String) =
filesMatching(_.contains(query)) // ???
def filesRegex(query: String) =
filesMatching(_.matches(query)) // ???
मैं // ???
वाली लाइनों के साथ थोड़ा उलझन में हूं। क्या _
का उपयोग किसी भी तरह से एक अज्ञात फ़ंक्शन बनाता है जो filesMatching
पर भेजा गया है? या _
के पास इसके साथ कुछ लेना देना नहीं है, और इसके बजाय संकलक देखता है कि filesMatching
को एक फ़ंक्शन की आवश्यकता है और इसलिए _.endsWith(query)
को अभिव्यक्ति के रूप में निष्पादित नहीं करता है बल्कि इसके बजाय अभिव्यक्ति को फ़ंक्शन बनाता है?
उपरोक्त '// ???' के साथ कोई लाइन नहीं है। शायद आप उन्हें जोड़ना भूल गए? –
इसके बारे में क्षमा करें, अभी '// ???' जोड़ा है। – C0deAttack
[स्कैला \ _ प्लेसहोल्डर्स (यह कोड कैसे काम करता है?) के संभावित डुप्लिकेट (http://stackoverflow.com/questions/6880407/scala-placehold-how-does- यह-code- कार्यक्षमता) –