Tag: 递归式

有没有可能在Kotlin中创建递归函数类型?

我有代表一个过程中的步骤的函数。 每个功能也知道下一步,如果有的话。 我希望能够做到这样的事情: fun fooStep() : Step? { … do something … return ::barStep // the next step is barStep } 这些函数是从一个中央调度函数调用的,它的代码有点像这样: var step = startStep while (step != null) { step = step() } 请注意,特定步骤中的逻辑也决定下一步,如果有的话。 我以为我可以定义为: typealias Step = () -> Step? 所以一个Step是一个返回另一个Step的函数,或者是null。 但是,这不能编译: Kotlin: Recursive type alias in expansion: Step 我可以通过将函数包装在一个对象中来解决这个问题。 例如: data […]