Здесь я пытаюсь вызвать функцию с использованием implicit. Для того, чтобы попытаться удалить столько котла код пластины как можно функция ссылающееся с помощью:Метод Scala не вызывается
("a" and "j", {
println("Hello");
})
Но это не вызывает f1
как вызвать функцию f1
с вызовом
("a" and "j", {
println("Hello");
})
?
Полный код:
object First extends App {
case class Commands(val list: List[String]) {
def and(that: String) = Commands(that :: list)
}
implicit def l(cmd: String) = Commands(cmd :: Nil)
implicit def f1(implicit d: (Commands,() => Unit)): Unit = {
val launchCommand = d._1.list.reverse.mkString("") + "::"
println(launchCommand)
println("This method is not being invoked");
d._2()
}
("a" and "j", {
println("Hello");
})
}
Update:
object First extends App {
case class Commands(val list: List[String]) {
def and(that: String) = Commands(that :: list)
}
implicit def l(cmd: String) = Commands(cmd :: Nil)
implicit def f1(implicit d: (Commands,() => Unit)): Unit = {
val launchCommand = d._1.list.reverse.mkString("") + "::"
println(launchCommand)
println("This method is not being invoked");
d._2()
}
implicit val commandAndFunc = ("a" and "j", {
println("Hello");
})
f1
}
f1
причины ошибки компилятора:
Multiple markers at this line:
◾not enough arguments for method f1: (implicit d: (First.Commands,() ⇒ Unit))Unit. Unspecified value parameter d.
◾could not find implicit value for parameter d: (First.Commands,() ⇒ Unit)
ли он теперь работать? –