मुझे उम्मीद है कि (String, String)
मामले में Pair
में मुझे एक प्रकार की त्रुटि देने की उम्मीद है।यह एक प्रकार की त्रुटि क्यों नहीं देता है?
case class Pair(x: String, y: String)
val value = Console.readLine.toBoolean
val Pair(x, y) =
if (value) Pair("foo", "bar")
else false
इसके बजाय, अगर मैं गलत दर्ज करता हूं, तो मुझे रन टाइम पर निम्न त्रुटि मिलती है।
scala.MatchError: (foo,bar) (of class scala.Tuple2)
मुझे लगता है विखंडन बस प्रकार Any
के एक चर के लिए परिणाम बताए और फिर उस पर मिलान के लिए चीनी है, लेकिन यह दुर्भाग्यपूर्ण है कि स्काला इस मक्खी की सुविधा देता है।
मुझे यह आदेश याद रखना होगा ('scalac')! – schmmd
यह जानना अच्छा है, लेकिन मुझे नहीं लगता कि 'उत्पाद' का सामान्य सुपरटेप यह क्यों संकलित करता है। मैंने इसे दिखाने के लिए अपना उदाहरण बदल दिया, हालांकि दोनों के पास अभी भी एक सामान्य सुपर प्रकार 'Any' है! – schmmd