19.0330
IntRange
IntRangeとは、
型/タイプ
による、分類では、
値型/value-type
になりますが、このことを、知っておくのは、最初に、設定する際、
定義の方法 において、重要
だからです。
また、そうであるなら、前回やりましたが、== を使って、比較するときは、
同じ内容かどうか?
を、比較するはずです。
(String型 は、値型 とは、言い難いですが、特別扱いなので、「内容を比べる」 のです。)
そのことを確かめてみました。
このコードを理解するためには、
文字列テンプレート には、変数の計算であっても、適用できる
例: "${ir1 == ir2}"
ということを、知っておく必要があります。
それが、分かっても、今までの知識を総動員しないと、難しいコードかもしれません。
ですが、とりあえず、
IntRange は、値型/value-type である
よって、定義するときは、
val intRangeX: IntRange = 1..3
のように、定義する。(詳細は、これから見ていきましょう。)
このことが分かっていれば、OKだと思います。
(class/いわゆる設計図 で、オブジェクトを定義するときとは、やり方が違うのです)
(もとい、Kotlin では、すべてがオブジェクトなのでした、ですが、
昔の名残というか、いまでも、こんな風にもよく使います。
「クラスをインスタンス化する」、「クラスを実体化する」 と言えば、誤解はないでしょう。)
もし、このページを、2回も、3回も、何周も、リピートして読んでくださるのであれば、
このコードを理解しようとしてみてください。
IntRange を、使う
ステップ1:定義 のやり方を確認する
定義の方法は、今までやってきたやり方とだいたい同じです。
val(変数ですよ) range(変数名): IntRange(型/タイプ) = 1..10(1から10までの整数を表します)
// 1..10、この書き方を覚えてください!
// たとえば、「3 から 330 まで」 なら、3..330 ですね。
ステップ2:例えば、あるInt型 が、1~100 まで の、数値 かどうか?を、調べる。
IntRange型変数 testRange を、定義する
val testRange: IntRange = 1..100
テストする、二つの、Int型整数 を、定義する
val testNumber1: Int = 90
val testNumber2: Int = 105
if/else文で、結果を表示する
if(testNumber1 in testRange) {
println("${testNumber1}は、1~100までの整数です")
} else {
println("${testNumber1}は、1~100までの整数ではありません")
if(testNumber2 in testRange) {
println("${testNumber2}は、1~100までの整数です")
} else {
println("${testNumber2}は、1~100までの整数ではありません")
では、これらのコードを、main()関数 の中で実行してみましょう。
まず、最初のポイントは、先ほど述べたように、
IntRange型 変数 の、定義方法
です。
これは、今までのやり方と同じ。
(ただ、今後、class を、実体化 する時と、やり方が違うので、抑えておきたかったのです。)
次のポイントは、ステップ2 で、
testNumber1 in testRange
と、書きましたが、
ここでの、
in
の使い方が、とても大事なところです。
こんな感じですね。
testNumber1 in/右の範囲の 中に ありますか? testRange
そして、Int型変数 in IntRange型変数
の、返す値は、
Boolean型
になります。
なんとなく、難しいというか、イメージしにくいかもしれませんが、大事なところです。
つまり、true または、false
ですね。
ということで、それを、踏まえて、このコードを、もう一度考えてみてください。
おまけの話として、
CharRange型、LongRange型
も、あります。
基本的には、同じ使い方です。
ただ、あまり覚えることが多すぎると、AndroidStudio の、
学習に移るのに時間がかかったり、その前に嫌になってしまうかもしれません。
今は、保留しておきます。
ゆとりのある方は、「やさしいKotlin入門」、、
この本は、入門者に向いているだけでなく、かなり深いところまで、学習できる本です、、
を、お勧めします。
まとめ
ステップ1:
IntRange型変数の定義:
val IntRange型変数名: IntRange = あるInt型リテラル..あるInt型リテラル
例: val aruIntRange: IntRange = 3..9
(あるIntRange型変数、aruIntRange を、3~9 の整数 に、定義しました)
ステップ2:
例えば、Int型リテラル が、ある整数範囲 にあるのか確かめる:
println(3 in aruIntRange)
は、true を、コンソールに、プリントします。