我有什么斯卡拉:从内部功能突破外功能
下面我有一个功能(我不能改变外功能)
def outer(x: Int, inner: Int => Boolean): Boolean = {
inner(x)
false
}
我想要什么
定义inn呃功能这样的方式:如果(X == 10)外函数返回真正
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中的一种不良风格
据我所知,你不能这样做不改变'外部'功能! – Shrey
另外,它应该不是'外(10,内)//真?!!? – Shrey
thnks,已经正确 –