zoukankan      html  css  js  c++  java
  • Kotlin 1 新运算符

     新运算符: “..” ,"in ","!in" ,"downto","step"
    注意:
    1. 关系运算符的优先级低于算术运算符。
    2. 关系运算符的优先级高于赋值运算符。

    区间运算符(a..b)
    区间运算符,顾名思义就是可以用来表示两个操作数之间的范围集合。a..b也就我们平时所说的,从a到b所有的数字集合。在Kotlin语言之中,有两种区间运算符:闭区间运算符和开区间运算符。
    - 闭区间运算符 : “a..b”从a到b范围内所有的值,包括a和b。
    - 半闭区间运算符 : “a until b”从a到b范围内所有的值,包括a和不包括b。

    区间表达式由具有操作符形式 “..” 或 rangeTo 辅以 in 和 !in 而得。区间是为任何可比较类型定义的,但对于整型原生类型,它有一个优化的实现。以下是使用区间的一些示例:

    for (i in 1..10) { // 等同于 1 <= i && i <= 10
      println(i)
    }

    for (i in 1.rangeTo(10)) { // 等同于 1 <= i && i <= 10
      println(i)
    }

    for (i in 'a'..'z') { // 等同于 'a' <= i && i <= 'z'
      println(i)
    }
    in 代表在区间内,!in表示不在。

    整型区间有一个额外的特性:它们可以迭代。 Kotlin编译器负责将其转换为类似 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)
    }

  • 相关阅读:
    hbase shell-namespace(命名空间指令)
    hbase shell-general(常规指令)
    hbase shell概述
    Codeforces Round #412 div2 ABCD
    Educational Codeforces Round 19
    CSU 1786 莫队+KDTree
    cdq分治入门and持续学习orz
    VK Cup 2017
    HRBUST 2072 树上求最大异或路径值
    UvaLive 5811 概率DP
  • 原文地址:https://www.cnblogs.com/mamamia/p/8056617.html
Copyright © 2011-2022 走看看