में ट्यूपल्स को सदिश में कैसे परिवर्तित कर सकता हूं, मैं एक वेक्टर ऑब्जेक्ट में संख्याओं (इंट्स और डबल) के पूर्ण रूप से परिवर्तित करने में सक्षम होना चाहता हूं।मैं स्केल
एक + विधि
case class Vector(x: Double, y:Double){
def + (v:Vector)= new Vector(x+v.x,y+v.y)
}
मेरा लक्ष्य निम्नलिखित कोड काम है के साथ एक वेक्टर वर्ग मान लिया जाये।
val vec = (1,2)+(.5,.3) // vec == Vector(1.5,2.3)
मैं इसे निम्नलिखित
implicit def int2vec(t:Tuple2[Int,Int])=new Vector(t._1,t._2)
val vec = (1,2)+(3,4) // vec == Vector(4.0,6.0)
साथ Int
के लिए काम करने के लिए प्राप्त कर सकते हैं लेकिन यह विफल रहता है जब मैं के लिए डबल
implicit def int2vec(t:Tuple2[Int,Int])=new Vector(t._1,t._2)
implicit def double2vec(t:Tuple2[Double,Double])=new Vector(t._1,t._2)
val a = (1,2)
val b = (.5,.3)
val c = (1,1)+b // vec = Vector(1.5,1.3)
val d = (1,2)+(.3,.5) // compile error: wrong number of arguments
val e = (1,2)+((.3,.5)) // compile error: type mismatch
रूपांतरण जोड़ने सिर्फ एंड्री के sugestion प्रति दोगुनी कोशिश कर रहा
implicit def double2vec(t:Tuple2[Double,Double])=new Vector(t._1,t._2)
val a = (.5,.3)
val b = (1,1)+a // type mismatch found:(Double,Double) required:String
इसे काम करने के लिए मुझे क्या करने की ज़रूरत है?
धन्यवाद। मैं स्पष्ट रूप से मूर्ख हूं क्योंकि मैं इसे अभी भी काम नहीं कर सकता। – ScalaNoob