scala - 如何克服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)){
^
虽然“值”被传递给函数,但它应该只返回列表中的元素(“温度”、“速度”、“长度”),绕过其余的输入。
解决方案
这是构建此代码的更好方法,并且应该修复您看到的错误:
def getDesiredValue(measure: String, value: String) =
measure match {
case "temperature" => value
case "speed" => value
case "length" => value
case _ => errorValue
}
推荐阅读
- entity-framework - 实体框架核心的变更跟踪器可以检测级联子记录吗?
- python - 共享内存缓冲区 Postgresql
- kubernetes - ZMQ pub/sub 在 kubernetes 中连接 2 分钟
- python - 给 pandas 一个可迭代的 python 和一个 pd.Series 的列之间的区别
- pandas - 如何将熊猫数据框转换为具有混合数据类型的考拉
- vb.net - 如何在文本文件中的行旁边附加一个新的字符串(数据)行和一个新的“索引号”
- c# - 为什么 Visual Studio 无法在谓词中正确编译 C# long TryParse?
- angular - 我可以使用指定的种子运行 Karma 测试吗?
- android - Flutter Image_picker 无法解析所有工件以进行配置
- swift - 将 javascript 注入 SwiftUI WebKit