मैं स्कैला में एक प्रोजेक्ट पर काम कर रहा हूं, लेकिन मुझे कुछ त्रुटि संदेश मिल रहे हैं जिन्हें मैं समझ में नहीं आता हूं। जिन वर्गों के साथ मैं काम कर रहा हूं वे अपेक्षाकृत सरल हैं। उदाहरण के लिए:स्कैला कंपाइलर त्रुटियों को समझने में मदद की ज़रूरत है
abstract class Shape
case class Point(x: Int, y: Int) extends Shape
case class Polygon(points: Point*) extends Shape
अब मान लीजिए कि मैं एक बहुभुज बनाने: तो फिर
val poly = new Polygon(new Point(2,5), new Point(7,0), new Point(3,1))
अगर मैं स्थान और छोटी संभव आयत के आकार कि बहुभुज को रख सकती निर्धारित करने के लिए प्रयास करते हैं, मैं विभिन्न मिल त्रुटियां जो मुझे समझ में नहीं आती हैं।
नीचे विभिन्न प्रयासों के स्निपेट और उनके द्वारा उत्पन्न किए गए संबंधित त्रुटि संदेश हैं।
val upperLeftX = poly.points.reduceLeft(Math.min(_.x, _.x))
त्रुटि देता है:
":" का विस्तार कार्य के लिए लापता पैरामीटर प्रकार ((एक्स $ 1) => x $ 1.x) "
val upperLeftX =
poly.points.reduceLeft((a: Point, b: Point) => (Math.min(a.x, b.x)))
इस त्रुटि देता है टाइप मिस्चैच;
मिला: (प्वाइंट, पॉइंट) => Int
आवश्यक: (कोई भी, प्वाइंट) => कोई भी "
मैं इन दोनों त्रुटि संदेशों के बारे में बहुत उलझन में हूं। अगर कोई और स्पष्ट रूप से समझा सकता है कि मैं गलत तरीके से क्या कर रहा हूं, तो मैं वास्तव में इसकी सराहना करता हूं। हां, मुझे लगता है कि दूसरी त्रुटि कहती है कि मुझे "कोई भी" टाइप करने की ज़रूरत है, लेकिन मुझे समझ में नहीं आता कि वास्तव में एक बदलाव को कैसे कार्यान्वित किया जाए, जिसकी मुझे आवश्यकता होगी। स्पष्ट रूप से बस "ए: पॉइंट" से "ए: कोई भी" बदलना एक व्यवहार्य समाधान नहीं है, तो मुझे क्या याद आ रही है?
ठीक है ... मुझे लगता है कि मैं वास्तव में इसे समझ गया। स्पष्टीकरण के लिए धन्यवाद! – klactose