Kotlin 区间

96 阅读1分钟

Kotlin 区间

kotlin 中的区间在Java中是没有的,区间和数学中的 [] 类似

1. 创建一个区间

使用 ..

    val intRange = 1..10
    val charRange = 'a'..'z'
    val longRange = 1L..10L

2. 创建半开半闭区间

使用 until

		//创建半开半闭区间
    // [1,10)
    val intRangeExclusive = 1 until 10
    val charRangeExclusive = 'a' until 'z'
    val longRangeExclusive = 1L until 10L

3. 创建 倒序 区间值 (由大到小)

使用 downTo

		val intRangeReverse = 10 downTo 1
    val charRangeReverse = 'z' downTo 'a'  //z y x ....a
    val longRangeReverse = 100L downTo 1L

4. 创建区间时 使用步长

使用 step

    val intRangeWithStep = 1..10 step 2 // 1,3,5..
    val charRangeWithStep = 'a'..'z' step 2  
    val longRangeWithStep = 0L..100L step 10 //0L ,10L , 20L ..

5.打印 输出区间

使用 joinToString() , 只能输出离散型的区间,非离散型的区间没有此方法

  println(longRangeWithStep.joinToString())

非离散型区间 没有joinToString方法,因为这个区间无穷大

  val doubleRange = 0.1..2.0
	val floatRange = 1f..2f
  // doubleRange 没有 joinToString 方法 但是他们可以使用 if(in)

6. 迭代遍历区间

和数组一样使用 in 迭代

使用 until 实现 int i= 0 i < xx.size i++ 这种迭代

**或者使用 数组的 indices 属性直接实现 **

    //迭代  只能迭代离散型区间,如 floatRange / doubleRange 不行,但是他们可以使用 if(in)
    
		for(i in 0..10){
        println(i)
    }

    for(ele in longRangeReverse){
        println(ele)
    }

    val arrays = intArrayOf(1,3,5,7)
    for(i in 0 until arrays.size){
        println(arrays[i])
    }

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

欢迎大家访问 个人博客 Johnny小屋
欢迎关注个人公众号

欢迎关注个人公众号