Операции Scala с числовыми обобщениями

Когда я пытался сделать

def subtract[T: Numeric](x: T, y: T) : T = x-y

в Scala 2.12 - не признается Тем не менее, это в основном эквивалентно тому, что предлагает дополнение с универсальным параметром типа в Scala. Что мне нужно изменить?

1 ответ

Решение

Самое простое, что можно сделать, это import Numeric.Implicits._, Это добавляет, что стандартные инфиксные операторы, -, *и т. д. к текущей неявной области. Тогда все должно работать как положено.

Кроме того, вы можете снять неявное и использовать его напрямую.

def subtract[T: Numeric](x: T, y: T) : T = implicitly[Numeric[T]].minus(x,y)
Другие вопросы по тегам