KotlinのRangeについて学びます。
RangeはJavaにはありませんが、名前の通り範囲を示すことができます。
例を見ましょう
1 2 3 4 5 6 7 8 |
fun main(args: Array<String>) { // 1から10までの範囲を指定 var range : IntRange = 1..10 // 1..10 print(range) // inで5がRange内にあるかどうかを判定する print(5 in range) } |
他のにも、LongRange、CharRangeがあります。
LongRangeはわかりますが、CharRangeとは一体なんのか?
例を見ましょう。
1 2 3 4 5 6 7 8 |
fun main(args: Array<String>) { // aからzまでの範囲を指定 var range : CharRange ='a'..'z' // a..z print(range) // true print('c' in range) } |
おそらく、asciiコードの順番なのでしょうが、使いがってがよくわかりません。。。
RangeをListオブジェクトに変換する
Rangeで定義したObjectをList型に変換することができます。
例を見ましょう
1 2 3 4 5 6 7 8 |
fun main(args: Array<String>) { // 1から10までの範囲を指定 var range : IntRange = 0..10 var list : List<Int> = range.toList() for(x in list){ print(x) } } |
Rangeで作成したObjectをtoList()関数によってList型に変換しています。
また、数値の間隔をあけるには、stepを利用します。
step
Rangeでの使用例を見ていきましょう。
1 2 3 4 5 6 7 8 |
fun main(args: Array<String>) { // 1から10までの範囲を指定 var range : IntRange = 0..10 var list : List<Int> = range.step(2).toList() for(x in list){ print(x) } } |
stepに2を指定しているので、
0,2,4,6,8,10
と表示されます。
downTo
降順にデータを並べる場合は、DownToを使用します。
1 2 3 4 5 6 7 |
fun main(args: Array<String>) { // 降順に並べる場合 var list : List<Int> = (10 downTo 0).toList() for(x in list){ print(x) } } |