Ваш вопрос показывает, что вы прилагаете мало усилий, чтобы найти решение самостоятельно.
Когда вы в следующий раз задаете вопрос о StackOverflow, задайте вопрос о существующем коде (например, «Почему я получаю это исключение?»)."или" Почему мой код не компилируется? ") и не думайте, что какая-то интернет-обезьяна волшебным образом напишет ваш код.
В любом случае, поскольку вы, кажется, являетесь новым членом SO,def calculator
будет выглядеть примерно так:
import scala.collection.immutable.StringOps._
import scala.util.{Try, Success, Failure}
def calculator(left: String, op: String, right: String): Unit = {
def parse(value: String) = Try(value.toDouble)
(parse(left), parse(right)) match {
case (Success(leftDouble), Success(rightDouble)) => {
op match {
case "/" => println(leftDouble / rightDouble)
case "*" => println(leftDouble * rightDouble)
case "+" => println(leftDouble + rightDouble)
case "-" => println(leftDouble - rightDouble)
case invalid: String => println(s"Invalid operator $invalid.")
}
}
case (Failure(e), _) => println(s"Could not parse $left.")
case(_, Failure(e)) => println(s"Could not parse $right.")
case(Failure(e1), Failure(e2)) => println(s"Could not parse $left and $right.")
}
}
Попробуйте!
Если вам нужны какие-либо объяснения, не стесняйтесь оставлять комментарии.
Надеюсь, это поможет.