对比Java学Kotlin震惊!Kotlin 竟然废弃了循环遍历?!
Posted 陈蒙_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对比Java学Kotlin震惊!Kotlin 竟然废弃了循环遍历?!相关的知识,希望对你有一定的参考价值。
我们以最简单的循环10次为例,在 Kotlin 中有如下几种方式:
for (i in 0..9) println(i)
for (i in 0 until 10) println(i)
repeat(10) i -> println(i)
(0..9).forEach i -> println(i)
上面遍历步代码长是1,我们还可以更改步长为其他,比如2:
for (i in 0..10 step 2) println(i)
但是,我们在 Kotlin 中更好的方式来取代循环遍历,虽然不能代替所有场景。
更好的方式就是集合的扩展,包括 filter、map 等,使用这些我们可以很方便的完成相关匹配、查找的功能,且不用写冗长的模板代码。
val li = listOf("i", "love", "my", "wife")
val st = listOf("with", "all", "myyy", "heart")
// 查找单个元素,结果:my
val found = li.find it.length == 2
println(found)
// 查找 li 中所有长度为2的字符串
// 结果:["my"]
val filter = li.filter it.length == 2
println(filter)
// 排序
val sorted = li.sortedDescending()
println(sorted)
// 变形,对li中的每个元素做变形然后组成一个新的list
// 结果:["I", "LOVE", "MY", "WIFE"]
val transformer = li.map it.toUpperCase()
println(transformer)
// 合并,取出li和st中长度为4的元素形成2个集合,再把2个集合中对应的元素经过运算一个新的元素,返回这些元素组成的集合
val merge =
li.filter it.length == 4
.zip(st.filter it.length == 4 ) l, s -> l.plus("_").plus(s)
println(merge)
以上是关于对比Java学Kotlin震惊!Kotlin 竟然废弃了循环遍历?!的主要内容,如果未能解决你的问题,请参考以下文章