gpt4 book ai didi

kotlin - 隐式映射到 Kotlin 中的设置

转载 作者:IT老高 更新时间:2023-10-28 13:37:19 24 4
gpt4 key购买 nike

映射完一个 Set 后,我​​必须将它显式地转换回 Set。例如:

fun getNewSet(oldSet: Set<String>): Set<String> {
return oldSet
.map{ getNewStringFromOld(it) }
.toSet()
}

在不显式将其转换回 Set 的情况下映射集合的正确方法是什么?

最佳答案

查看库代码,唯一的另一种方法是调用 mapTo,它采用目标集合:

oldSet.mapTo(HashSet<String>()) { getNewStringFromOld(id) }

我不确定默认设置是否错误。问题是 map 可能会以导致非唯一值列表的方式使用。如果有一个特殊版本的 Set.map() 返回了一个集合,那么您就不能以这种方式使用 map - 任何非唯一值都会替换结果中的值。我当然可以看到 map 应该总是产生一个与源集合大小相同的集合,并且如果 map 创建了一个 Set,情况并非总是如此。

如果你经常这样做,也许只是创建你自己的扩展函数:

public inline fun <T, R> Iterable<T>.mapToSet(transform: (T) -> R): Set<R> {
return mapTo(HashSet<R>(), transform)
}

关于kotlin - 隐式映射到 Kotlin 中的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42913816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com