为什么我们在 Kotlin 用例中使用调用运算符重载?

ir2*_*pid 5 android operator-overloading kotlin

我已经开始在 kotlin 中使用用例来进行干净的编码实践,但不清楚为什么我们使用调用运算符重载。这有什么意义?为什么不将其称为execute()呢?

interface GetUserUseCase {
    operator fun invoke(): Single<Result<User>>
}
Run Code Online (Sandbox Code Playgroud)

aLx*_*aLx 4

在 UseCase 上使用调用运算符有一些好处:

  • 在无合约用例上强制执行伪合约
  • 读起来更自然
  • 调用的灵活性(loginUseCase() 与 loginUseCase.invoke() )