Android Kotlin Iterable.map的类似物,但用于单个对象

Android Kotlin Iterable.map的类似物,但用于单个对象,android,kotlin,Android,Kotlin,我可以在一行中使用map转换列表,如下所示: override suspend fun getAllTxtFile(): List<TxtFileModel> { return someDao.getAllTxtFile().map { with(txtFileDataMapper) { it.fromEntityToDomain() } } } 所以,区别在于,对于list,我可以在一行中返回一个值,但是对于单个对象,只能在三行中返回 这没什么大不了的,但我想知道除了单个

我可以在一行中使用map转换列表,如下所示:

override suspend fun getAllTxtFile(): List<TxtFileModel> {
    return someDao.getAllTxtFile().map { with(txtFileDataMapper) { it.fromEntityToDomain() } }
}
所以,区别在于,对于list,我可以在一行中返回一个值,但是对于单个对象,只能在三行中返回

这没什么大不了的,但我想知道除了单个对象之外,是否存在
.map
的其他变量。我想要类似于
.mapsingelobject

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

您可以使用Kotlin标准库中的一些函数,如
运行
,或
一起使用

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

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

.let
的工作原理与
.map
完全相同,但只针对一项。在这种代码的平静中,为什么要将
一起使用:
val txtFileModel=with(txtFileDataMapper){txtFile.fromentytodomain()
?据我所知,您没有使用
txtFileDataMapper
对象的任何属性或函数。可能
fromEntityToDomain
txtFileDataMapper
类中定义的TxtFile扩展名函数。
override suspend fun getTxtFile(txtFileName: String?): TxtFileModel? = 
        someDao.getTxtFile(txtFileName)?.let { 
            with(txtFileDataMapper) { it.fromEntityToDomain() } 
        }