Part3: 数値型

ことり「今回からは、1つ1つの文法と言語機能について詳しく見ていきます。まずは数値型だよ」

ことり「まず、数値型と言っても何種類かあります。整数か浮動小数点数か、表せる値の範囲で以下の種類が用意されてるから、状況に応じて使い分けましょう」

ビット長
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8

ことり「DoubleFloatが浮動小数点数、それ以外が整数です」
凛「んー、迷ったら大きいのを使えばいいのかな?」
ことり「消費するメモリに差が出てくるから、科学計算とか金融取引とかでなければIntFloatでいいんじゃないかな」

ことり「それぞれの型に応じたリテラルの書き方も決まってます」

ことり「IntShortByteは普通に数字を書けばいいんだけど、Longは数字の後ろにLをつけるんだよ」
凛「var e: Int = 25252Lって書いたらどうなるの?」
ことり「コンパイルエラーだね。The integer literal does not conform to the expected type kotlin.Intだって」
凛「じゃあ、var f: Long = 25252って書いたら?」
ことり「そっちは大丈夫。リテラルはコンパイルの時に評価されて、この場合25252はLongの範囲内だから、その代入は安全とみなされるよ」
凛「なるほど~」
ことり「ただしこれはリテラルの話で、変数同士の代入だと」

ことり「このコードはエラーになるよ。言語によっては普通に動くんだけど、Kotlinは暗黙的な型変換を許可しないから」
凛「融通が利かないにゃ」
ことり「その分安全ってことだよ」

ことり「0b0xで始まる値はそれぞれ2進数と16進数です」
凛「あれ、8進数は?」
ことり「Kotlinではサポートされてないよ」


ことり「次は浮動小数点数」

ことり「こんどはFloatにFをつけます。整数と違って、var c: Double = 252.52Fはエラーになるよ」
凛「結構厳しいにゃ」

ことり「でも、これだと困ることあるよね。だから、ちゃんと型変換の手段も用意されてます」

ことり「こうすると、IntShortに変換して代入できるよ」
凛「変換用の関数が用意されてるんだね」
ことり「これは以下の通り、それぞれの型に対応する関数が用意されています」

  • toByte(): Byte
  • toShort(): Short
  • toInt(): Int
  • toLong(): Long
  • toFloat(): Float
  • toDouble(): Double
  • toChar(): Char

ことり「計算も、他の言語とだいたい同じみたい」

凛「252を52で割ったら、4.846153…とかになるんじゃないの?」
ことり「この例だと、整数同士の計算だから結果も整数になるの。片方が浮動小数点数なら」

ことり「こんな感じ」
凛「それっぽく変換して計算してくれるんだね」

ことり「最後に、ビット演算」
凛「う、ちょっと苦手なやつだにゃ」

凛「頭痛くなるにゃ~」
ことり「1桁ずつ見ていけば難しくないよ凛ちゃん」


ことり「ちょっと脇道で、真偽値型を見ておくね。1回使うほどでもないから」

ことり「大半の言語と同じで、Boolean型はtruefalseの2値を取ります」
凛「条件判定とかで使うやつだよね」
ことり「うん。で、Booleanに対する演算は3種類用意されています。論理和、論理積、否定だね」

凛「これくらいなら難しくないにゃ」

ことり「というわけで、今回は数値型を見てきました。凛ちゃん、わかった?」
凛「ビット演算だけ頭痛いけど、大丈夫にゃ!」
ことり「それなら、みんな大丈夫だね♪」
凛「ことりちゃん、ちょっとひどくないかにゃ・・・?」


LINEで送る
Pocket


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です