मैं स्काला में एक सरल 2 डी बिंदु वर्ग को परिभाषित कर रहा हूँ कहते हैं, और मैं विभिन्न प्रकार के साथ निर्माण करने में सक्षम होना चाहता हूँ:स्कैला सहायक कन्स्ट्रक्टर में पैरामीटर की अनुमति क्यों नहीं दी जाती है?
class Point(x:Float, y:Float) {
this(x:Double, y:Double) = this(x.toFloat, y.toFloat)
this(x:Int, y:Int) = this(x.toFloat, y.toFloat)
// etc...
}
मैं जैसे एक टेम्पलेट का उपयोग कर नीचे इस उबालने के लिए, चाहते हैं:
class Point(x:Float, y:Float) {
this[T](x:T, y:T) = this(x.toFloat, y.toFloat)
}
मैं जानता हूँ कि यह, वैसे भी काम नहीं करेगा क्योंकि टी एक प्रकार है जो के लिए toFloat परिभाषित नहीं है हो सकता है, लेकिन संकलक त्रुटि मैं मिलता है:
no type parameters allowed here
यह सिर्फ unsupp है Scala में Orted? यदि हां, तो क्यों, और इस के आसपास जाने का कोई आसान तरीका है?
यदि आप इस विधि को 'लागू करें' कहते हैं तो आप लिख सकते हैं, 'वैल पी = प्वाइंट (1,2)', नहीं? –
हां, और इसी तरह केस क्लास इसे करते हैं। –