我可以像这样用map转换列表:
override suspend fun getAllTxtFile(): List<TxtFileModel> {
return someDao.getAllTxtFile().map { with(txtFileDataMapper) { it.fromEntityToDomain() } }
}
但是我不知道如何为单个类对象做到这一点:
override suspend fun getTxtFile(txtFileName: String?): TxtFileModel {
val txtFile = someDao.getTxtFile(txtFileName)
val txtFileModel = with(txtFileDataMapper) { txtFile.fromEntityToDomain() }
return txtFileModel
}
因此,不同之处在于,对于列表,我可以在一行中返回一个值,而对于单个对象只能在3行中返回。
没什么大不了的,但是我想知道是否存在针对
.map
的一个类似物,但是对于单个对象。我想要类似.mapSingleObject
的东西:override suspend fun getTxtFile(txtFileName: String?): TxtFileModel {
return someDao.getTxtFile(txtFileName).mapSingleObject{ with(txtFileDataMapper) { it.fromEntityToDomain() } }
}
最佳答案
您可以使用Kotlin标准库中的某些函数,例如let
,run
或with
。
如果fromEntityToDomain()
函数是在TxtFile
的类中定义的txtFileDataMapper
扩展函数,则可以使用上述函数:
override suspend fun getTxtFile(txtFileName: String?): TxtFileModel? =
someDao.getTxtFile(txtFileName)?.let {
with(txtFileDataMapper) { it.fromEntityToDomain() }
}