मैंने प्रश्न का उत्तर देखा: Can all usages of forSome
be replaced by an equivalent usage of _
?, लेकिन यह समझ में नहीं आया कि वास्तविक मामला क्या है जहां "कुछ" के बजाय "_" का उपयोग नहीं किया जा सकता है। मैं Programming in Scala किताब में पढ़ा है कि:का असली उदाहरण "क्या कुछ 'के लिए' कुछ 'का उपयोग` _` के समतुल्य उपयोग से बदला जा सकता है? "
अस्तित्व प्रकार भाषा की एक पूरी तरह से समर्थित हिस्सा हैं, लेकिन व्यवहार में वे मुख्य रूप से जब स्काला से जावा प्रकार तक पहुँचने किया जाता है। मैं स्काला परियोजना बनाया है और उसमें जावा एक संदर्भित:
स्काला:
object Main {
def main(args: Array[String]): Unit = {
type Test = java.util.Collection[T] forSome { type T }
val contents: Test = (new Wild).contents
type Test2 = java.util.Collection[_]
val contents2: Test2 = (new Wild).contents
// foo((new Wild).contents2) // won't compile
foo1((new Wild).contents2)
foo1((new Wild).contents3)
foo2((new Wild).contents3)
}
def foo(xs: java.util.Map[T, T] forSome { type T }) {}
def foo1(xs: java.util.Map[_, _]) {}
def foo2(xs: java.util.Map[_, _ <: java.lang.Number]) {}
}
जावा:
public class Wild {
public Collection<?> contents() {
return null;
}
public Map<?, ?> contents2() {
return null;
}
public Map<?, ? extends Number> contents3() {
return null;
}
}
सभी मामलों के साथ मैं "" forSome "की जगह करने में सक्षम था में _ "। तो वास्तविक मामले क्या हैं जहां "के लिए कुछ" आवश्यक है? कृपया सरल कामकाजी उदाहरण प्रदान करें।
धन्यवाद! यह अभी के लिए स्पष्ट है। – user4298319