我尝试将用例类从Java切换到Kotlin,从Rxjava切换到协程。

这是我的GetTopSongs类。

class GetTopSongs {

    suspend fun execute(limit:Int):Either<List<Song>>{
        //... do stuff
    }
}

我想知道Kotlin中是否有比getTopSongs.execute(10)更好的方法?

最佳答案

使用operator overloading

class GetTopSongs {

    suspend operator fun invoke(limit:Int):Either<List<Song>>{
        //... do stuff
    }
}

因此,您可以忽略多余的.execute调用:
val getTopSongs = GetTopSongs()
val result = getTopSongs(10)

10-04 21:56