Kotlin 文档groupBy显示每种类型的特殊形式,例如ByteArray, IntArray. 为什么会这样,为什么单一的通用形式是不够的?
inline fun <T, K> Array<out T>.groupBy(
keySelector: (T) -> K
): Map<K, List<T>>
Kotlin 文档中的片段
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而忽略其余部分时,这是一个非常具体且罕见的情况?