chunked所在位置是kotlin.collections.chunked,其相关用法介绍如下。

用法一

fun <T> Iterable<T>.chunked(size: Int): List<List<T>>

将此集合拆分为列表列表,每个列表不超过给定的 size

结果列表中的最后一个列表的元素可能少于给定的 size

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val words = "one two three four five six seven eight nine ten".split(' ')
val chunks = words.chunked(3)

println(chunks) // [[one, two, three], [four, five, six], [seven, eight, nine], [ten]]
//sampleEnd
}

输出:

[[one, two, three], [four, five, six], [seven, eight, nine], [ten]]

参数

size- 每个列表中的元素数量,必须为正数,并且可以大于此集合中的元素数量。

用法二

fun <T, R> Iterable<T>.chunked(
    size: Int, 
    transform: (List<T>) -> R
): List<R>

将此集合拆分为多个列表,每个列表不超过给定的size,并将给定的transform 函数应用于每个列表。

例子:

import java.util.Locale
import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val codonTable = mapOf("ATT" to "Isoleucine", "CAA" to "Glutamine", "CGC" to "Arginine", "GGC" to "Glycine")
val dnaFragment = "ATTCGCGGCCGCCAA"

val proteins = dnaFragment.chunked(3) { codon: CharSequence -> codonTable[codon.toString()] ?: error("Unknown codon") }

println(proteins) // [Isoleucine, Arginine, Glycine, Arginine, Glutamine]
//sampleEnd
}

输出:

[Isoleucine, Arginine, Glycine, Arginine, Glutamine]

参数

size- 每个列表中的元素数量,必须为正数,并且可以大于此集合中的元素数量。

返回

transform 的结果列表应用于每个列表。

请注意,传递给transform 函数的列表是短暂的,仅在该函数内部有效。您不应该存储它或让它以某种方式逃逸,除非您制作了它的快照。最后一个列表的元素可能比给定的 size 少。