こんにちは😁
今回からは、以前やったデータ型のちょっと高度な表現に
関して実際に書いてみてみようと思います。
今回は、「Int」を使います。
Intは「10進数」の最も普通の表現として使用されます。
他に10進数の表現としては、より大きな値を扱える「Long」が
あります。
まずは、書いてみましょう。
↓ 上がInt型で、下がLong型です。
Longの場合は、数字の末尾に「L」と記載します。
val typeInt = 111
val typeLong = 111L
では、この下の変数typeLongがLong型であることを判定
してみます。
↓ このように、「変数 is データ型」のif条件で判定できます。
if (type is Long) {・・・・・
なお、Int型をLong型かどうか判定すると直ぐにエラーであると
教えてくれました。
↓ これは正常なのでエラーは出ません。
この「is」を使って以下のようなif文を書いてみました。
判定がtrueであればコメントが出力されます。
println(“処理開始ーーーー”)
val typeInt = 111
val typeLong = 111L
if (typeInt is Int) {
println(“${typeInt}はInt型”)
}
if (typeLong is Long) {
println(“${typeLong}はLong型”)
}
println(“ーーーー処理終了”)
では、実行しましょう。
↓ コンパイルでwarning(警告)が出ましたね。
コード書いている段階で結果がいつも同じでしょ?
とのことです。
今回は、テストでみてみたいので、このまま作成された
jarファイルを実行します。
実行すると、出力されました。
見た目はどちらも10進数なので違いはありませんね。
ただ、Long型は大きな整数と一緒に使用するとか、先のロジック
で値が大きくなるという場合に使用するのがいいでしょう。
次は、「2進数」と「16進数」をみてみましょう。
Kotlinでは、「10進数」の他に「2進数」と「16進数」の
表記法があります。ただ「8進数」はありません。
2進数の表記は数字の頭に「0b」、
16進数の表記は数字の頭に「0x」を付けます。
val typeBi = 0b001100 // 2進数
val typeHex = 0xF2CE // 16進数
この表記は、ソースコードをわかりやすく表記するためのもので、
データ型はInt、出力は10進数で行われます。
先ほどと同じようにif条件で出力してみましょう。
println(“処理開始ーーーー”)
val typeBi = 0b001100
val typeHex = 0xF2CE
if (typeBi is Int) {
println(“${typeBi}はInt型”)
}
if (typeHex is Int) {
println(“${typeHex}はInt型”)
}
println(“ーーーー処理終了”)
↓ 実行してみると、Int型であることと出力が10進数であること
がわかります。
あまり使わない処理かと思いますが、知っておいて損はない
知識になります。
今日はここまで🤚
では、また次回。