我有什麼斯卡拉:從內部功能突破外功能
下面我有一個功能(我不能改變外功能)
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,已經正確 –