Ranges adalah barisan nilai yang memiliki nilai awal dan akhir serta interval tertentu. Tipe nilai yang bisa dibandingkan dapat digunakan untuk membuat range, yaitu dengan operator . .
1 2 3 |
val aToZ = "a".."z" val oneToNine = 1..9 |
Ketika variable range dibuat, operate in digunakan untuk memeriksa apakah sebuah nilai ada dalam range tersebut. Itu sebabnya nilai range adalah tipe data yang bisa dibandingkan. Nilai yang valid dalam range adalah nilai >= nilai_awal && nilai <= nilai_akhir
1 2 3 4 5 |
val aToZ = "a".."z" val isCinclude = "c" in aToZ // bernilai benar karena "c" ada dalam range val oneToNine = 1..9 val eleven = 11 in oneToNine // bernilai false |
Ada beberapa metode lain untuk membuat sebuah range selain operator . . , yaitu downTo()? untuk membuat range hitung mundur dan rangeTo()? membuat range “sampai ke” nilai tertentu. Keduanya merupakan extensi untuk tipe data numeric.
1 2 |
val countingDown = 100.downTo(0) val rangeTo = 10.rangeTo(20) |
Setelah range dibuat, kita bisa memodifikasi range tersebut untuk membuat range baru. Untuk mengubah delta atau interval dari range yang sudah dibuat kita bisa menggunakan fungsi step()
1 2 |
val oneToFifty = 1..50 // buat range 1 sampai 50 val ganjil = oneToFifty.step(2) // interval diubah menjadi 2 step -> 1,3,5 .. |
Kita tidak bisa menggunakan bilangan negatif untuk membuat range dengan hitung mundur. Meskipun downTo()? berfungsi untuk menghitung mundur, namun ada fungsi lain untuk membalikkan urutan range yaitu reversed()?. Fungsi ini membalik nilai awal dan akhirnya dan decrementnya negatif.
1 |
val genapMundur = (2..100).step(2).reversed() |
Baca juga artikel sebelumnya