Kotlin - 範圍



Kotlin 的範圍由其兩個端點值定義,這兩個值都包含在範圍內。Kotlin 範圍是使用rangeTo()函式建立的,或者簡單地使用downTo(. .)運算子。範圍的主要操作是contains,通常以in!in運算子的形式使用。

示例

1..10  // Range of integers starting from 1 to 10

a..z   // Range of characters starting from a to z

A..Z   // Range of capital characters starting from A to Z

範圍的兩端始終包含在範圍內,這意味著表示式 1..4 對應於值 1、2、3 和 4。

使用 rangeTo() 建立範圍

要建立 Kotlin 範圍,我們對範圍起始值呼叫rangeTo()函式,並將結束值作為引數提供。

示例

fun main(args: Array<String>) {
   for ( num in 1.rangeTo(4) ) {
     println(num)
   }
}

執行上述 Kotlin 程式後,將生成以下輸出

1
2
3
4

使用 .. 運算子建立範圍

rangeTo()通常在其運算子形式..中呼叫。因此,可以使用..運算子改寫上述程式碼,如下所示

示例

fun main(args: Array<String>) {
   for ( num in 1..4 ) {
     println(num)
   }
}

執行上述 Kotlin 程式後,將生成以下輸出

1
2
3
4

使用 downTo() 運算子建立範圍

如果要定義反向範圍,可以使用downTo運算子

示例

fun main(args: Array<String>) {
   for ( num in 4 downTo 1 ) {
     println(num)
   }
}

執行上述 Kotlin 程式後,將生成以下輸出

4
3
2
1

Kotlin step() 函式

我們可以使用step()函式來定義範圍值的距離。讓我們來看下面的例子

示例

fun main(args: Array<String>) {
   for ( num in 1..10 step 2 ) {
     println(num)
   }
}

執行上述 Kotlin 程式後,將生成以下輸出

1
3
5
7
9

Kotlin 字元範圍

可以為字元建立範圍,就像我們為整數值建立範圍一樣。

示例

fun main(args: Array<String>) {
   for ( ch in 'a'..'d' ) {
     println(ch)
   }
}

執行上述 Kotlin 程式後,將生成以下輸出

a
b
c
d

Kotlin reversed() 函式

reversed()函式可用於反轉範圍的值。

示例

fun main(args: Array<String>) {
   for ( num in (1..5).reversed() ) {
     println(num)
   }
}

執行上述 Kotlin 程式後,將生成以下輸出

5
4
3
2
1

Kotlin until() 函式

until()函式可用於建立範圍,但它將跳過給定的最後一個元素。

示例

fun main(args: Array<String>) {
   for ( num in 1 until 5 ) {
     println(num)
   }
}

執行上述 Kotlin 程式後,將生成以下輸出

1
2
3
4

最後一個、第一個、步長元素

我們可以使用範圍的firstlaststep屬性來查詢範圍的第一個值、最後一個值或步長。

示例

fun main(args: Array<String>) {
   println((5..10).first)
   println((5..10 step 2).step)
   println((5..10).reversed().last)
}

執行上述 Kotlin 程式後,將生成以下輸出

5
2
5

過濾範圍

filter()函式將返回與給定謂詞匹配的元素列表

示例

fun main(args: Array<String>) {
   val a = 1..10
   val f = a.filter { T -> T % 2 == 0 }
   
   println(f)
}

執行上述 Kotlin 程式後,將生成以下輸出

[2, 4, 6, 8, 10]

範圍中的不同值

distinct()函式將返回具有重複值的範圍中的不同值列表

示例

fun main(args: Array<String>) {
   val a = listOf(1, 1, 2, 4, 4, 6, 10)
   
   println(a.distinct())
}

執行上述 Kotlin 程式後,將生成以下輸出

[1, 2, 4, 6, 10]

範圍實用函式

我們可以對範圍應用許多其他有用的函式,例如minmaxsumaveragecount

示例

fun main(args: Array<String>) {
   val a = 1..10
   
   println(a.min())
   println(a.max())
   println(a.sum())
   println(a.average())
   println(a.count())
}

執行上述 Kotlin 程式後,將生成以下輸出

1
10
55
5.5
10

測驗時間 (面試與考試準備)

答案:D

解釋

所有給定的陳述都是關於 Kotlin 範圍的真實陳述

Q 2 - 以下程式的輸出是什麼?

fun main(args: Array<String>) {
   val a = 1..20
   
   println(a.average())
}

A - 這將列印 10.5

B - 這隻會發出警告

C - 編譯將停止並報錯

D - 以上都不是

答案:A

解釋

average() 函式用於獲取範圍值的平均值。

Q 2 - 以下程式的輸出是什麼?

fun main(args: Array<String>) {
   val a = 1..20
   
   if( 3 in a){
      print( true )
   }else{
      print( false )
   }
}

A - true

B - false

C - 編譯將停止並報錯

D - 以上都不是

答案:A

解釋

它將返回 true,因為 3 在範圍內,所以in運算子將返回 true。

廣告
© . All rights reserved.