मैं निम्न विधि है:स्केला: एक विधि (डीईएफ़) का उपयोग कर बनाम एक समारोह (वैल) में डिफ़ॉल्ट मानकों को परिभाषित
scala> def method_with_default(x: String = "default") = {x + "!"}
method_with_default: (x: String)java.lang.String
scala> method_with_default()
res5: java.lang.String = default!
scala> method_with_default("value")
res6: java.lang.String = value!
मैं एक वैल के साथ एक ही प्राप्त करने के लिए कोशिश कर रहा हूँ, लेकिन मैं एक मिल सिंटेक्स त्रुटि, इस तरह: (ठीक नहीं डिफ़ॉल्ट मान के साथ, यह एक संकलित)
scala> val function_with_default = (x: String) => {x + "!"}
function_with_default: String => java.lang.String = <function1>
(लेकिन मैं नहीं मिल सका संकलित करने के लिए यह एक ...)
scala> val function_with_default = (x: String = "default") => {x + "!"}
<console>:1: error: ')' expected but '=' found.
val function_with_default = (x: String = "default") => {x + "!"}
^
कोई विचार?
Function0 साथ Function1 काफी चालाक है, लेकिन मैं यह है कहेंगे थोड़ा सुगंधित केवल मेरी राय यहाँ। कोई चर्चा इरादा नहीं है। :) – pedrofurla
बीटीडब्ल्यू आप कार्यों के लिए शर्करा का उपयोग कर सकते हैं: (नया) (स्ट्रिंग => स्ट्रिंग) (() => स्ट्रिंग) {ओवरराइड डीफ़ लागू = लागू ("डिफ़ॉल्ट"); ओवरराइड डीफ़ लागू (एक्स: स्ट्रिंग) = एक्स + "!" } 'काम करता है। – pedrofurla
मैं मानता हूं कि यह थोड़ा सुगंधित है, लेकिन मुझे ऐसा समाधान नहीं दिख रहा है जो नहीं है। –