如何在 kotlin 中将 List<Unit> 类型更改为正确的类型
How change List<Unit> type to proper one in kotlin
我在仅获取具有传递的 coinList 值的信息时遇到问题。首先,我想将 coinList 设为 List<Coin>
而不是 List<Unit>
,但我不知道如何更改它。我想将 it.id
与 coinList
进行比较,如果它们具有相同的值,则将其传递给函数 coin。提前致谢!
class GetCoinsUseCase @Inject constructor(
private val repository: CoinRepository
){
private val coinList = listOf("btc-bitcoin", "usdt-tether", "eth-ethereum")
operator fun invoke(): Flow<Resource<List<Coin>>> = flow{
try{
emit(Resource.Loading<List<Coin>>())
val coins = repository.getCoins().map { if (it.id.equals(coinList)){ it.toCoin() }}
emit(Resource.Success<List<Coin>>(coins))
}catch (e: HttpException){
emit(Resource.Error<List<Coin>>(e.localizedMessage ?: "Error occurred"))
}
}
}
也许这样的事情会起作用,首先做一个过滤器只检索相关的项目,然后映射
val coinsList = arrayListOf<String>("foo", "bar")
val coins = repository.getCoins().filter { it.id in coinsList }.map {
it.toCoin()
}
我在仅获取具有传递的 coinList 值的信息时遇到问题。首先,我想将 coinList 设为 List<Coin>
而不是 List<Unit>
,但我不知道如何更改它。我想将 it.id
与 coinList
进行比较,如果它们具有相同的值,则将其传递给函数 coin。提前致谢!
class GetCoinsUseCase @Inject constructor(
private val repository: CoinRepository
){
private val coinList = listOf("btc-bitcoin", "usdt-tether", "eth-ethereum")
operator fun invoke(): Flow<Resource<List<Coin>>> = flow{
try{
emit(Resource.Loading<List<Coin>>())
val coins = repository.getCoins().map { if (it.id.equals(coinList)){ it.toCoin() }}
emit(Resource.Success<List<Coin>>(coins))
}catch (e: HttpException){
emit(Resource.Error<List<Coin>>(e.localizedMessage ?: "Error occurred"))
}
}
}
也许这样的事情会起作用,首先做一个过滤器只检索相关的项目,然后映射
val coinsList = arrayListOf<String>("foo", "bar")
val coins = repository.getCoins().filter { it.id in coinsList }.map {
it.toCoin()
}