0
私はComplexNumber
クラスを作成しました。私はプリミティブな数値型の演算子をスカラーでオーバーロードすることはできますか?
val c = ComplexNumber(1,3); 3 * c;
ような何かをできるようにしたいと思いますが、それはこれが可能であるなど、ダブル、int型のため*
の過負荷を必要とするでしょうか?
私はComplexNumber
クラスを作成しました。私はプリミティブな数値型の演算子をスカラーでオーバーロードすることはできますか?
val c = ComplexNumber(1,3); 3 * c;
ような何かをできるようにしたいと思いますが、それはこれが可能であるなど、ダブル、int型のため*
の過負荷を必要とするでしょうか?
操作するタイプごとに暗黙の変換を定義する必要があります。このための便利な場所はコンパニオンオブジェクトです。
今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 = ...
}