मैं समझता हूँ कि एक विधि इस तरह कोड हो सकता है:स्केल में विधि पैरामीटर में एकाधिक, लगातार वसा तीर क्या करते हैं?
def m(p1:Int => Int) ...
इस विधि जिसका मतलब है एक समारोह p1 कि एक इंट
रिटर्न लेता है लेकिन जब प्ले ब्राउज़ कर!
trait Secured {
def username(request: RequestHeader) = request.session.get(Security.username)
def onUnauthorized(request: RequestHeader) = Results.Redirect(routes.Auth.login)
def withAuth(f: => String => Request[AnyContent] => Result) = {
Security.Authenticated(username, onUnauthorized) { user =>
Action(request => f(user)(request))
}
}
/**
* This method shows how you could wrap the withAuth method to also fetch your user
* You will need to implement UserDAO.findOneByUsername
*/
def withUser(f: User => Request[AnyContent] => Result) = withAuth { username => implicit request =>
UserDAO.findOneByUsername(username).map { user =>
f(user)(request)
}.getOrElse(onUnauthorized(request))
}
}
f: User => Request[AnyContent] => Result
क्या मतलब है: ढांचे कोड मैं अपाठ्य तरीकों के साथ एक विशेषता पाया? पहली नज़र में यह एक विधि की तरह दिखता है जो अनुरोध के प्रकार r
फ़ंक्शन देता है; r
फिर Result
देता है।
यह सही धारणा है?
ठीक है, ठंडा। लेकिन इसे निर्दिष्ट करने की आवश्यकता क्यों है? कंपाइलर उस प्रकार का अनुमान क्यों लगा सकता है जो 'अनुरोध' रिटर्न देता है? संपादित करें: कभी नहीं, मुझे लगता है कि अनुरोध के उपप्रकार विभिन्न प्रकार के परिणाम लौटा सकते हैं, इसलिए यह सहायक है। –
@ कैमरून ए। एलिस मुझे पूरा यकीन नहीं है कि मैं आपकी टिप्पणी समझता हूं। 'अनुरोध' वस्तु कुछ भी वापस नहीं करती है। फ़ंक्शन 'f' द्वारा लौटाया गया है, जिसमें टाइप' अनुरोध [AnyContent] => परिणाम 'एक' परिणाम 'देता है। रिटर्न प्रकार को फ़ंक्शन के प्रकार से बाहर नहीं छोड़ा जा सकता है क्योंकि तब यह 'f' 'अनुरोध' ऑब्जेक्ट लौटाएगा - एक ऐसा फ़ंक्शन नहीं जो 'अनुरोध' ऑब्जेक्ट लेता है, जो काफी अलग है। – sepp2k
इसे स्पष्ट करने के लिए धन्यवाद। अब कुल समझ में आता है। –