in
的用法主要有如下几类
between
,判定某个值是否在某个区间代替传统的 Java中的 for
//结果 1 2 3
fun f1() {
for (i in 1..3) {
print("$i ")
}
}
//结果 1 2
fun f2() {
for (i in 1 until 3) {
print("$i ")
}
}
//结果 5 3 1 等值也是会匹配到的
fun f3() {
for (i in 5 downTo 1 step 2) {
print("$i ")
}
}
上述案例中需要注意的是:
in
如果搭配n1 .. n2
,那么表示的是i>=n1 && i<=n2
,从数学意义上来说是一个闭区间。in
如果搭配n1 until n2
,那么标识的前闭后开区间
in
如果搭配 n1 downTo n2
,表示的是递减+闭区间
不结合 for
使用,也可以标识在某个范围中。
fun inTest() {
println("a" in listOf("b", "c"))
println("a" >= "b" && "a" <= "c")
}
其中的in
标识的是否就在范围中。
上述的代码2个是等价的,很明显使用in
表达的意思更清晰。
在 kotlin 中,对应 list的遍历有3个常用的知识可以梳理,如下所示:
fun forArrayTest() {
val list = listOf("a", "b", "c")
//用法1,普通的遍历
for (s in list) {
println(s)
}
//用法2:遍历索引
for (i in list.indices) {
if (i % 2 == 1) {
println(list[i])
}
}
//用法3: 索引和值一起出现
for (iv in list.withIndex()) {
if (iv.index % 2 == 1) {
println(iv.value)
}
}
}
in
遍历数组list.indices
来遍历索引list.withIndex()
来遍历索引和值上面的东西其实很简单,不过总结一次后,下次使用会更简单吧,哈哈!
对了希望2020年,写博客超过50篇。