यदि आप वास्तव में देखभाल पर इस बात के बारे में क्या सोचते हैं, तो आप इसे [_, _] के साथ parametrize कर सकते हैं। उदाहरण
val thing = new SomeClass[_, _]()
या
def thingDoer(sc: SomeClass[_, _]) { /* Stuff */ }
तरह बातें हो सकता है थोड़ा अधिक अपनी प्रकृति के बारे में स्पष्ट, अंडरस्कोर "अस्तित्व प्रकार" के रूप में जाना जाता है होना करने के लिए, और यह मूल रूप से एक कच्चे प्रकार के बराबर है जावा में, और यह जावा से वाइल्डकार्ड प्रकार के समान कार्य भी कर सकता है। उदाहरण के लिए, इस सिज़ोफ्रेनिया जावा कोड के लिए
public void thingThatTakesAMapList(List<? extends Map> mapList) { /* Whatever */ }
इस स्काला कोड
def thingThatTakesAMapList(mapList: List[_ <: Map[_, _]]) { /* Some incredibly wild subroutine */ }
के रूप में भी एक ही है, यह सूची के बीच distinguishment ध्यान देने योग्य है [कोई] और सूची [_] ... बहुत सूक्ष्म। यह कहना है कि पूर्व किसी की सूची है, और उत्तरार्द्ध [मुझे नहीं पता/देखभाल] की एक सूची है। _ किसी भी से अलग है, हालांकि।उदाहरण के लिए, अगर आप इस हस्ताक्षर के साथ एक वर्ग था
class SillyClass[T <: Map[_, _]]
यह करने के लिए मान्य नहीं होगा इस
val thing = new SillyClass[Any]()
जबकि यह आप इस
val thing = new SillyClass[HashMap[_, _]]()
करने के लिए मान्य हो सकता है
और, यदि किसी फ़ंक्शन ने पैरामीटर के रूप में एक SillyClass लिया, तो आप
लिख सकते हैं
और सुनिश्चित करें कि एससी किसी भी प्रकार पर parametrized जा रहा है; यह मानचित्र के कुछ अज्ञात सबक्लास पर parametrized है [_, _]। यही कहना है कि अंडरस्कोर प्लेसहोल्डर है, लेकिन इसके लिए अभी भी आवश्यक है कि वैध प्रकार पैरामीटर इसके स्थान पर मौजूद हों। तो, यह सब अच्छा है और सब कुछ ... मैं विशेष रूप से इसका उपयोग करने की सलाह नहीं देता हूं। अगर आपको कुछ करने की ज़रूरत है ... वाइल्डकार्ड-वाई, या बस टाइप पैरामीटर की परवाह नहीं है, हालांकि, यह विचार करने का एक अच्छा विकल्प है।
आप कुछ टाइपिंग बचाने के बाद कर रहे हैं, तो आप 'तरह प्रकार SomeClassAny = एक प्रकार उर्फ प्रयास कर सकते हैं, तो SomeClass [AnyRef, Any] '। – huynhjl
एक डिफ़ॉल्ट 'मान' (अपने प्रश्न का शीर्षक देखें) कुछ अलग है: 'वर्ग Foobar (बी: Int = 42)'; आप टाइप पैरामीटर के बारे में बात कर रहे हैं। –
@huynhjl लगता है कि 'टाइप' सबसे अच्छा फिटिंग समाधान है। आपको इसे –