如何以匿名函数/函数文字返回?

时间:2013-04-15 17:00:56

标签: scala

我不确定如何在匿名函数中使用return关键字(或者我应该以不同的方式解决我的问题?)。

现在的方式,return实际上是指封闭的功能。

()=>{
  if (someMethodThatReturnsBoolean()) return true
  // otherwise do stuff here
}:Boolean

2 个答案:

答案 0 :(得分:5)

为什么不呢?

() =>
  someMethodThatReturnsBoolean() || {
    //do stuff here that eventually returns a boolean
  }

或者,如果您不想使用||运算符生成副作用,则只需使用plain:

() =>
  if (someMethodThatReturnsBoolean())
    true
  else {
    //do something here that returns boolean eventually
  }

if只是Scala中的一个表达式,您应该以类似表达式的方式组织代码,并尽可能避免使用return

答案 1 :(得分:4)

  

现在的方式,返回实际上是指封闭函数。

这是应该的样子。您无法使用return从匿名函数返回。您必须重写代码以避免return语句,如:

()=>{
  if (someMethodThatReturnsBoolean()) true
  else {
    // otherwise do stuff here
  }
}:Boolean