我有一个游戏,您可以执行某些操作,然后在完成操作后,您可以再次执行一系列操作,但是一旦程序结束,完成操作后,我认为这是一个递归函数,因此可以保留去。
这不是我的游戏的一部分,而只是一个演示,该程序要求输入一个字符串,然后完成。它不应该继续要求一个字符串吗,我该怎么做呢?我还尝试了回调f1函数内部的递归函数,但是f1当然不知道它的存在。
private fun getTargetXAndY(): Pair<Int, Double> {
var viewHeight = 0
var viewWidth = 0
var viewPosX = 0F
val viewMatcher = onView(withId(R.id.keyboardLayout))
viewMatcher.check { view, _ ->
viewWidth = view.width
viewHeight = view.height
viewPosX = view.x
}
val keyboardKeyWidthPercent = 0.333
val keyboardRowsCount = 3
val keyboardButtonWidthQuarter = (viewWidth * keyboardKeyWidthPercent) / 4
val keyboardButtonHeightHalf = (viewHeight / keyboardRowsCount) / 2
val viewTargetY = viewHeight - keyboardButtonHeightHalf
val viewTargetX = (viewPosX + viewWidth) - keyboardButtonWidthQuarter
return Pair(viewTargetY, viewTargetX)
}
答案 0 :(得分:1)
如注释中所述,您将@Nullable Integer
定义为值而不是函数。之前已经在StackOverflow上对此进行了讨论,并且有good question and answer that covers this.
另一个问题是,您可能想从f2
调用f2
(以继续循环)以及从f1
调用f1
。为此,您可以使用f2
语法将函数定义为相互递归:
let rec .. and