में समझौता प्रकार inferrence मैं निम्नलिखित साधारण प्रोग्राम लिखा है:स्काला
import java.util.{Set => JavaSet}
import java.util.Collections._
object Main extends App {
def test(set: JavaSet[String]) =()
test(emptySet()) //fine
test(emptySet) //error
}
और वास्तव में आश्चर्यचकित था अंतिम पंक्ति test(emptySet)
संकलित नहीं किया गया। क्यूं कर? test(emptySet())
के बीच क्या अंतर है? मैंने सोला में सोचा था कि हम ऐसे मामलों में स्वतंत्र रूप से ब्रांड्स को छोड़ सकते हैं।
लेकिन 'टेस्ट (खालीसेट) '-' जावासेट [कुछ भी नहीं]' में अनुमानित प्रकार क्यों है? –
त्रुटि संदेश से, यह नहीं है। यदि आपका मतलब है कि आईडीईए इस प्रकार से दिखाता है, तो यह गलत है। टाइपिंग करते समय आप आईडीईए की दिखाए गए त्रुटियों और अनुमानित प्रकारों पर भरोसा नहीं कर सकते हैं, हमेशा पहले कोड बनाने का प्रयास करें। –
बस अपनी रिपोर्ट पढ़ें। इसलिए, दूसरे मामले में भी काम करना चाहिए था, है ना? –