美文网首页
Kotlin之for与区间表达式

Kotlin之for与区间表达式

作者: 钦_79f7 | 来源:发表于2019-12-20 17:01 被阅读0次

区间表达式

  • 运算符:..,是闭合的区间,即:1..10,包含1与10;
  • 关键字:util,是前闭后开区间;
  • 关键字:downTo,降序迭代
  • 关键字:step,步长。100 downTo 1 step 2,100以2的步长降序迭代至1,即 100 98 96 ...

区间表达式由具有操作符形式 ..rangeTo 函数辅以 in!in 形成。

in

  • in 检查一个值是否在区间中;
  • !n 检查一个值是否不再区间中。
if (i in 1..10) { // 等同于 1 <= i && i <= 10
    println(i)
}

整型区间(IntRange、 LongRange、 CharRange)有一个额外的特性:它们可以迭代。 编译器负责将其转换为类似 Java 的基于索引的 for-循环而无额外开销:

for (i in 1..4) print(i) // 输出“1234”

for (i in 4..1) print(i) // 什么都不输出

如果你想倒序迭代数字呢?也很简单。你可以使用标准库中定义的 downTo() 函数:

for (i in 4 downTo 1) print(i) // 输出“4321”

能否以不等于 1 的任意步长迭代数字? 当然没问题, step() 函数有助于此:

for (i in 1..4 step 2) print(i) // 输出“13”

for (i in 4 downTo 1 step 2) print(i) // 输出“42”

要创建一个不包括其结束元素的区间,可以使用 until 函数:

for (i in 1 until 10) {   // i in [1, 10) 排除了 10
     println(i)
}

它是如何工作的?请点击这里

for

如果你想要通过索引遍历一个数组或者一个 list,你可以这么做:

for (i in array.indices) {
    println(array[i])
}

或者你可以用库函数 withIndex:

for ((index, value) in array.withIndex()) {
    println("the element at $index is $value")
}

相关文章

  • Kotlin之for与区间表达式

    区间表达式infor 区间表达式 运算符:..,是闭合的区间,即:1..10,包含1与10; 关键字:util,是...

  • 从Java到Kotlin(八)

    Kotlin的其他技术 目录 一、解构声明二、区间三、类型检查与转换四、this表达式五、相等性六、操作符重载七、...

  • 第六篇:Kotlin之面向对象简单

    上篇:Kotlin之函数Lambda表达式 下篇:Kotlin之面向对象升级(一) Kotlin也支持面向对象的三...

  • 19. when表达式

    1.正常使用 2.when加强 相比java,区间更加方便 3.kotlin中when表达式原理 可以看到编译后的...

  • 第四篇:Kotlin之数组和集合

    上篇:第三篇:Kotlin之流程控制 下篇:第五篇:Kotlin之函数和Lambda表达式 一.Kotlin数组 ...

  • 第一篇:Kotlin之基础类型

    上篇:Kotlin之介绍篇 下篇:第二篇:Kotlin之运算符和表达式 1.分号 熟悉java开发的朋友都知道...

  • 【Android】 Kotlin(四)方法与Lambda表达式

    Kotlin方法与Lambda表达式 经过前面对Kotlin的介绍,相信大家已经能对Kotlin有了一个基本的认识...

  • 第三篇:Kotlin之流程控制

    上篇:第二篇:Kotlin之运算符和表达式 下篇:第四篇:Kotlin之数组和集合 说起流程的话,相信学过ja...

  • Kotlin区间

    区间的创建 通过 .. 创建闭区间,包含起止值 通过 until 关键字创建前开后闭的区间,包含开始值,不包含结束...

  • kotlin中lambda的实现和内联函数

    前言 通过阅读lambda表达式与Kotlin高阶函数,你应该了解到在kotlin中传递lambda作为函数参数的...

网友评论

      本文标题:Kotlin之for与区间表达式

      本文链接:https://www.haomeiwen.com/subject/oquinctx.html