gpt4 book ai didi

kotlin - 为什么Kotlin中的groupBy通用形式还不够?

转载 作者:行者123 更新时间:2023-12-02 12:53:03 27 4
gpt4 key购买 nike

Kotlin的groupBy文档显示了每种类型的特殊形式,例如ByteArrayIntArray。为什么会这样,为什么单一的通用形式还不够?

inline fun <T, K> Array<out T>.groupBy(
keySelector: (T) -> K
): Map<K, List<T>>

片段 from Kotlin documentation
inline fun <T, K> Array<out T>.groupBy(
keySelector: (T) -> K
): Map<K, List<T>>
inline fun <K> ByteArray.groupBy(
keySelector: (Byte) -> K
): Map<K, List<Byte>>
inline fun <K> ShortArray.groupBy(
keySelector: (Short) -> K
): Map<K, List<Short>>
inline fun <K> IntArray.groupBy(
keySelector: (Int) -> K
): Map<K, List<Int>>

...

问题2

似乎 IntArray并未将 Array子类化,这可能就是为什么必须这样做的原因。

因此,我想知道-如果我想添加自己的函数,比方说 verySpecialGroupBy-是否意味着我还需要不仅指定一个这样的函数-还需要为每种数组类型重复它?

或者,这是一种非常特殊且罕见的情况,当您需要使用那些特殊的数组,并且在实践中,您可以只为通用 Array定义函数而忽略其余函数?

最佳答案

这些数组专门用于原始类型的数组。因此,在创建verySpecialGroupBy函数的示例中,如果您想将其与原始类型数组一起使用,则只需对每个专门化重复此操作。

您可以在Kotlin discussion thread中阅读有关基本类型数组需求的更多信息。

关于kotlin - 为什么Kotlin中的groupBy通用形式还不够?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56590302/

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