В настоящее время я изучаю язык программирования Scala (люблю его кстати) и недавно обнаружил неявные преобразования. Поэтому у меня есть класс и его компаньон. и в моем объекте компаньона я хочу thees неявных преобразования:Scala неявное преобразование любого числового типа
implicit def convertToComplex(x: Double) = new Complex(x, 0);
implicit def convertToComplex(x: Int) = new Complex(x, 0);
implicit def convertToComplex(x: Float) = new Complex(x, 0);
implicit def convertToComplex(x: Short) = new Complex(x, 0);
implicit def convertToComplex(x: Long) = new Complex(x, 0);
для того, чтобы не раздувать мой комплекс класса номера с перегрузкой на +, -, * и/для добавления типов чисел.
Так что мой вопрос:
Есть более короткий путь, чтобы написать неявные преобразования с некоторым синтаксическим сахаром сортов? (я имею в виду без всех перегрузок ...)
Заранее спасибо.
Какой тип двух координат? Это исправлено, чтобы сказать 'Double', или Complex'' параметрический? Из фрагмента кода, который я собираю, это ** не ** параметрический (и поэтому он, вероятно, набирает как ** Double **, чтобы иметь возможность размещать все типы ввода), но я хотел бы получить подтверждение. –
Вы думали о том, как использовать scala в цифрах? Это дает вам что-то вроде этого def plus [T: Numeric] (x: T, y: T) = x + y – Noah
@ RégisJean-Gilles как реальная, так и мнимая части ** Double **. – boogie666