0
我創建了一個ComplexNumber
類。我希望能夠像做是否有可能在scala中重載原始數值類型的運算符?
val c = ComplexNumber(1,3); 3 * c;
但這需要重載*
對於int,double等這可能嗎?
我創建了一個ComplexNumber
類。我希望能夠像做是否有可能在scala中重載原始數值類型的運算符?
val c = ComplexNumber(1,3); 3 * c;
但這需要重載*
對於int,double等這可能嗎?
您需要爲每個要操作的類型定義一個隱式轉換。一個便利的地方是伴侶對象。
object ComplexNumber {
import scala.language.implicitConversions
implicit def i2cn(i:Int):ComplexNumber = new ComplexNumber(....
}
現在3 * c
將作爲*
方法被定義爲ComplexNumber
類的一部分,只要工作。
class ComplexNumber(a:Int, b:Int) {
def *(cn:ComplexNumber): ComplexNumber = ...
}