ハジカラ 〜はじめからでも、プログラミング勉強〜

入門向けに、IT関連(javaやKotlin)をコツコツ書いたり検証したりします。

【Kotlin入門】範囲の応用〜IntRange型とIntProgression型

calendar

reload

【Kotlin入門】範囲の応用〜IntRange型とIntProgression型

こんにちは😀

今回は、範囲をみていきます。
範囲は、例えば以前使用した「1..10」と書いて1〜10を示すような
形式のことです。
その範囲の応用をみてみます。

いくつか書いてみます。

①は「1〜6」までの数字を1つづつ飛ばすことを意味します。
②は「9〜3」の数字の降順を意味します。
③は②と同様「9〜3」の降順です。
④は「2〜5」までになり、終端は含みません。

実行します。
・・・ちょっと思ってたのと違いますね💦
高度な範囲

ちょっと整理します。

「1..10」のようなデータ型は「IntRange」になりますが、
「step」「downTo」「until」が付いた場合のデータ型は
「IntProgression」になります。
「step」「downTo」「until」は関数になります。
「1..5 step 2」という書き方も、「(1..5).step(2)」の簡略形に
なります。「IntProgression」はこれらの戻り値の型になります。

なので、「IntProgression」を引き数にして処理する
関数を追加します。
以下の処理は、受け取った関数の値をリストに追加しています。

main関数は、showProgression関数を呼び出す形にします。
なお、「IntRange」は「IntProgression」に含まれるので、
同じくshowProgression関数を使用できます。

実行しましょう。
「9..3」は出力がされていないので使用できないようです。
代わりに「downTo」を使用しましょう。
他は想定通り出力されています。
高度な範囲2
使い慣れていないので戸惑うところですが、使えると便利そうなので
範囲の使い方にも慣れていきたいと思います。

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】