首页 > 解决方案 > 如何克服scala中的类型不匹配

问题描述

def getDesiredValue(measure: String, value: String): Any = {

    val desiredMeasure = List("temperature","speed","length")
    if(desiredMeasure.contains(measure)){
        measure match
        {
            case temperature => value
            case speed => value
            case length => value
        }
        value.toString
    }

}

val Value = getDesiredValue("temperature", "°C")

编译错误:

found : Unit
required: String

if(desiredMeasure.contains(measure)){
^

虽然“值”被传递给函数,但它应该只返回列表中的元素(“温度”、“速度”、“长度”),绕过其余的输入。

标签: scala

解决方案


这是构建此代码的更好方法,并且应该修复您看到的错误:

def getDesiredValue(measure: String, value: String) =
  measure match {
    case "temperature" => value
    case "speed" => value
    case "length" => value
    case _ => errorValue
  }

推荐阅读