如果至少有一个元素符合给出的判断条件,则返回true。
val list = listOf(1, 2, 3, 4, 5, 6)
assertTrue(list.any { it % 2 == 0 })
assertFalse(list.any { it > 10 })
如果全部的元素符合给出的判断条件,则返回true。
assertTrue(list.all { it < 10 })
assertFalse(list.all { it % 2 == 0 })
返回符合给出判断条件的元素总数。
assertEquals(3, list.count { it % 2 == 0 })
在一个初始值的基础上从第一项到最后一项通过一个函数累计所有的元素。
assertEquals(25, list.fold(4) { total, next -> total + next })
与fold
一样,但是顺序是从最后一项到第一项。
assertEquals(25, list.foldRight(4) { total, next -> total + next })
遍历所有元素,并执行给定的操作。
list.forEach { println(it) }
与forEach
,但是我们同时可以得到元素的index。
list.forEachIndexed { index, value
-> println("position $index contains a $value") }
返回最大的一项,如果没有则返回null。
assertEquals(6, list.max())
根据给定的函数返回最大的一项,如果没有则返回null。
// The element whose negative is greater
assertEquals(1, list.maxBy { -it })
返回最小的一项,如果没有则返回null。
assertEquals(1, list.min())
根据给定的函数返回最小的一项,如果没有则返回null。
// The element whose negative is smaller
assertEquals(6, list.minBy { -it })
如果没有任何元素与给定的函数匹配,则返回true。
// No elements are divisible by 7
assertTrue(list.none { it % 7 == 0 })
与fold
一样,但是没有一个初始值。通过一个函数从第一项到最后一项进行累计。
assertEquals(21, list.reduce { total, next -> total + next })
与reduce
一样,但是顺序是从最后一项到第一项。
assertEquals(21, list.reduceRight { total, next -> total + next })
返回所有每一项通过函数转换之后的数据的总和。
assertEquals(3, list.sumBy { it % 2 })