Скала калькулятор, который принимает три строковых параметра - PullRequest
0 голосов
/ 19 ноября 2018

Как написать метод с именем calculator, который принимает три строковых параметра:

def calculator(operand1: String, operator: String, operand2: String): Unit

Преобразует операнды в Int; Выполняет нужный математический оператор (+, -, * или /) для двух операндов Печатает результат или общие сообщения об ошибках

1 Ответ

0 голосов
/ 19 ноября 2018

Ваш вопрос показывает, что вы прилагаете мало усилий, чтобы найти решение самостоятельно.

Когда вы в следующий раз задаете вопрос о 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.")
  }

}

Попробуйте!

Если вам нужны какие-либо объяснения, не стесняйтесь оставлять комментарии.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...