Попытка получить знания и навыки Scala, вот простой пример. Я хочу определить класс, который определяет множество операций, которые могут быть реализованы множеством способов. Я мог бы начать с того,Правильное использование черт и объектов Scala
sealed trait Operations{
def add
def multiply
}
Так, например, я мог бы создать экземпляр этого класса с объектом означает, что add
и multiply
очень толково,
case object CorrectOperations extends Operations{
def add(a:Double,b:Double)= a+b
def multiply(a:Double,b:Double)= a*b
}
А также, могут быть и другие способы определения тех операции, такие как, очевидно, неправильный путь,
case object SillyOperations extends Operations{
def add(a:Double,b:Double)= a + b - 10
def multiply(a:Double,b:Double)= a/b
}
Я хотел бы передать такой экземпляр в функцию, которая будет выполнять операции в частности.
def doOperations(a:Double,b:Double, op:operations) = {
op.multiply(a,b) - op.add(a,b)
}
Я хотел бы doOperations
взять любой объект типа operations
, так что я могу использовать в add
и multiply
, какими бы они ни были.
Что мне нужно изменить примерно doOperations
, и что я здесь непонимаю? Спасибо
Пахнет как coursera здесь. –