我有的
我在下面有一个功能(我无法更改外部功能)
def outer(x: Int, inner: Int => Boolean): Boolean = {
inner(x)
false
}
我想要的是
以这样的方式定义内部函数: if (x == 10)外部函数返回true
def inner(x: Int): Boolean = {
if (x == 10) OUTER_FUNCTION_SHOULD_RETURN_TRUE!!!
else false
}
outer(10, inner) // TRUE!!
问题
我该怎么做?
编辑:
我使用下一个技巧:
// If inner return true at least once, then outerWraper return true
def outerWrapper(x: Int, inner: Int => Boolean): Boolean = {
var flag = false
def inner2(e: Int): Boolean = {
if (!flag) flag = inner(e)
inner(e)
}
outer(x, p2)
flag
}
我可以避免使用 var 标志,而是使用 val insted 吗?据我了解 var 在 Scala 中是一种不好的风格