kotlin - 如何提高此Kotlin代码的可读性?

标签 kotlin lambda builder-pattern

我想在 Kotlin 中改进此代码,似乎太多余了

.forEach和Lambda可以实现,但我不知道如何
有人可以帮忙吗?


val Point1 : List<Double> = topleft
                .split(",")
                .map {
                    it
                            .trim()
                            .toDouble()
                }
        val Point2 : List<Double> = topright
                .split(",")
                .map {
                    it
                            .trim()
                            .toDouble()
                }
        val Point3 : List<Double> = bottomright
                .split(",")
                .map {
                    it
                            .trim()
                            .toDouble()
                }
        val Point4 : List<Double> = bottomleft
                .split(",")
                .map {
                    it
                            .trim()
                            .toDouble()
                }

最后,我想让拥有一个包含所有这些值的列表
topleft,topright ...是类似42.1234,54.23423的字符串
(地理坐标)

最佳答案

您应该创建一个可以为每个列表重复的功能。像这样:

fun String.splitToDoubles() = split(",").map { it.trim().toDouble() }

val point1 = topleft.splitToDoubles()
val point2 = topright.splitToDoubles()
val point3 = bottomright.splitToDoubles()
val point4 = bottomleft.splitToDoubles()

请注意,Kotlin中的约定是valvar以小写字母开头(point1,而不是Point1)。

关于kotlin - 如何提高此Kotlin代码的可读性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57506758/

相关文章:

design-patterns - builder 模式和享元模式有什么区别?

java - H2 中的 DATETIME 值与从 Java/Kotlin 插入的 MySQL 数据库之间的不匹配

java - Lombok Builder批注引发UnsupportedOperationException

android - kotlin 中的重载解析歧义错误

c# - 如何翻译此 C# 示例中的 Lambda 运算符函数?

c# - 如何手动构建将始终返回 true 的表达式?

html - Dart事件处理常式和Lambda

kotlin - 如何为具有许多不可变属性的 Kotlin 数据类创建构建器

android - 升级后 CameraX 预览不起作用

ios - 我可以使用 Kotlin 在 Windows 上开发适用于 iOS 的应用程序吗?