Kotlin中operator关键字的具体作用是什么?附代码示例
Kotlin中operator修饰invoke函数的作用
直接说结论:用operator修饰invoke函数,能让这个类的实例像普通函数一样被调用,不用额外写.invoke()这串代码。
看你贴的ImageUseCase代码,它用operator声明了挂起的invoke函数,当你拿到这个类的实例后,不用这么写:
imageUseCase.invoke(page = 2, category = "popular")
而是可以直接像调用函数一样写:
imageUseCase(page = 2, category = "popular")
因为invoke是Kotlin里的特殊运算符函数,用operator标记后,就支持这种"实例()"(带参数)的调用语法。
这种写法在UseCase模式里特别常用——UseCase本身就是一个单一的执行单元,把它做成"可调用对象",代码读起来更直观,就像直接执行这个用例一样,不用额外去记某个特定方法名。
另外你的invoke还是suspend函数,所以在协程里调用的时候,和调用普通挂起函数完全一样,不用额外处理,非常顺畅。
内容的提问来源于stack exchange,提问作者mmTDC
相关产品推荐
相关产品推荐

