1
Я борюсь со следующей проблемой, которая вызывает ошибку во время компиляции. Error: value dir не является членом параметра типа A. Но это!Scala Неявный параметр bound
trait Logger { def dir: String }
trait LoggerFile[A <: Logger] {
def extractor: String => Option[A]
}
def getHistory[A: LoggerFile](): String = {
implicitly[LoggerFile[A]].extractor("abc") match {
case Some(a) => a.dir
case None => ""
}
}
Я был в состоянии решить эту проблему с помощью this answer:
def getHistory[A <: Logger]()(implicit env: LoggerFile[A]): String = {
Но я предпочел бы систему работать до преобразования, то есть с синтаксическим сахаром. Есть ли способ указать несколько ограничений типа на A?
Отлично. Я попробовал наоборот: LoggerFile <: Logger, но это не сработало. –