首页 > 解决方案 > 如何在 scala 中声明具有多个返回的匿名函数?

问题描述

我想MyValue使用匿名函数的结果声明一个字符串类型的常量值。现在我使用声明的函数有类似的东西getValue

// Start writing your ScalaFiddle code here
val n = 23

def getValue(): String = {
  if (n == 1) return "One"
  if (n == 2) return "Two"
  return "Another value"
}

val MyValue = (getValue())

println(n)
println(MyValue)

我怎么能使用匿名函数呢?所以它看起来像这样

val n = 23

val MyValue = (() => {
  if (n == 1) return "One"
  if (n == 2) return "Two"
  return "Another value"
})()

println(n)
println(MyValue)

但这给了我以下错误:

ScalaFiddle.scala:7: error: return outside method definition
    if (n == 1) return "One"
                ^
ScalaFiddle.scala:8: error: return outside method definition
    if (n == 2) return "Two"
                ^
ScalaFiddle.scala:9: error: return outside method definition
    return "Another value"
    ^

标签: scala

解决方案


您可以在条件句中删除return和使用:else

val MyValue = (
    () => {
        if (n==1) "One" 
        else if (n==2) "Two" 
        else "Another value"
    }
)()

推荐阅读