我可以像这样用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标准库中的某些函数,例如letrunwith

如果fromEntityToDomain()函数是在TxtFile的类中定义的txtFileDataMapper扩展函数,则可以使用上述函数:

override suspend fun getTxtFile(txtFileName: String?): TxtFileModel? =
        someDao.getTxtFile(txtFileName)?.let {
            with(txtFileDataMapper) { it.fromEntityToDomain() }
        }

08-18 05:50