kotlin - 映射转换以在作为 url 的字符串列表上应用新路径
问题描述
我有一个字符串列表(newsFeeds),它们是一个链接。其中一些具有路径组件,而另一些则没有。我的目标是仅在存在路径组件时应用自定义路径组件。我的代码如下。
如何以更 Kotlin 的风格编写它?
newsRepository.getAllNewsFeeds().observeForever { newsFeeds ->
listNewsFeedUrls = newsFeeds.mapNotNull { newsFeed ->
if (newsFeed.newsfeedURL?.toUri()?.path.isNullOrEmpty()) {
newsFeed.newsfeedURL + "/us/json/news"
} else {
newsFeed.newsfeedURL
}
}
}
解决方案
您的代码看起来已经不错了。不要为了让它更 Kotlinish 而降低可读性。
如果您仍然想查看其他方式,请查看以下内容:
如果您想避免冗余,您可以立即将您的列表映射newsFeeds
到列表newsfeedURLs
。此外,您可以连接路径或空字符串以避免必须引用url
两次。
newsFeeds.mapNotNull(NewsFeed::newsfeedURL).map { url ->
url.toString() + if (url.toUri()?.path.isNullOrEmpty()) {
"/us/json/news"
} else {
""
}
}
推荐阅读
- c++17 - 将整数参数传递给接受浮点数的可变参数模板
- c# - 如何判断 C# 项目是否正在使用 SSD 构建?
- r - 如何为 r 文本分析创建定制的贸易/法律词典
- css - CSS 关键帧动画在 Chrome 和 Firefox 中停止工作
- excel - *EXCEL* 如果一系列单元格包含 *STRING*,则从正单元格中提取十进制数的总和
- php - 如何从 HTML/PHP 页面打印 png/jpg 文件?
- c# - 通过 csproj 文件中的 PackageReference 更新 nuget 包
- r - 忽略 x-label 对齐与拼凑而成的多个图:这可能吗?
- node.js - 在node.js中的回调中带有等待的递归函数
- android-studio - 在颤动中将文件添加到git忽略