こんにちは!リンコですピヨ!この記事では自分の勉強の復習もかねて、Kotlinの変数や型の種類について解説するピヨ!
この第2章では、プログラミング言語であるKotlinの変数や型の種類について、一から解説していきます。
この記事を読めばプログラミング未経験の方も、Kotlin入門レベルの変数や型の種類について1つ1つ理解しながら勉強できると思うので、是非最後まで読んで頂ければと思います。
※この記事で出てくる「サンプルコード」は、記述が長く画面からはみ出ている場合がありますが、横にスライドすると表示されるのでご安心ください。
Kotlinの変数と型について
まず初めに、そもそも型と変数ってなに?っていうところから勉強していきましょう。
変数とは?
まず先に変数の説明からです。変数とは、文字や数字など好きな値を格納しておくことのできる便利な「入れ物」みたいなもので、イメージ的には「箱」や「器」といった感じになります。
文字や数字などの値を変数に格納することを「変数の宣言」と言います。またKotlinでは、変数を宣言する際に「var」や「val」というキーワードを使って宣言するのですが、ここに関しては後程説明します。
型とは?
続いて型についてです。文字や数字を入れるものが「変数」ということは先ほど説明したと思いますが、その入れる文字や数字によって変数には「型」というものが存在します。
文字を入れるには〇〇型の変数に、数字を入れるには□□型の変数にいれる、といった感じでそれぞれに型の種類があり、それぞれの型に値を格納する必要があります。
次にこの型の種類について勉強していきます。
Kotlinの基本の型の種類
Kotlinの基本の型の種類には大きく分けると数値型、文字型、文字列型、真偽型の4種類があります。また数値型に関しては整数を表す型と、浮動小数点を表す型の2つに分かれます。
数値(整数)
まずは数値型の整数についてです。整数とは5、100、237、1465など、小数点のない数値のことです。整数の型には「Byte」「Short」「Int」「Long」の4種類があり、ビット幅によってそれぞれの型で扱える整数の範囲が変わります。
単純にビット幅が大きいほど扱える整数の範囲が大きくなり、大きい数値を代入することができるようになります。扱う整数の大きさによって、変数の型をByteにしたりIntにしたり、臨機応変に選ぶようにしましょう。
ビット幅とか扱える整数の範囲は、Byteが一番小さくてLongが一番大きくてーくらいの記憶で良いピヨ!
型 | 最小値と最大値 | ビット幅 |
---|---|---|
Byte | -128~127 | 8ビット |
Short | -32768~32767 | 16ビット |
Int | -2147483648~2147483647 | 32ビット |
Long | -9223372036854775808~9223372036854775807 | 64ビット |
数値(浮動小数点)
続いて浮動小数点についてです。浮動小数点とは1.5、56.3、0.5など、小数点が含まれる数値のことです。浮動小数点の型には「Float」「Double」の2種類があり、整数と同じくビット幅によってそれぞれの型で扱える浮動小数点の範囲が変わります。
ビット幅が大きいほど扱える浮動小数点の範囲が大きくなり、大きい数値を代入することができるということも整数と同じです。
型 | 最小値と最大値 | ビット幅 |
---|---|---|
Float | 1.4E-45~3.4028235E38 | 32ビット |
Double | 4.9E-324~1.7976931348623157E308 | 64ビット |
これを見る限り、じゃあどんな数値を扱ったとしても整数ならLong、浮動小数点ならDoubleといった一番大きい型を使った方が間違いないんじゃない?となるかもしれません。
それでもいいっちゃいいですが、ビット幅が大きいほど「使用するメモリが大きくなる」ため1という小さい整数を格納するためにLong型を使うと、無駄にメモリを使用することになり動作が遅くなってしまうので注意が必要です。
数値に合った適切な変数の型を使うピヨ!
文字
文字の型は「Char」という変数の型を使います。英語で文字を意味する「Character」という単語から最初の4文字を切り取ってつけられたそうです。
Char型を使うと、「あ」や「け」や「の」などの「1つの文字」を変数に格納することができます。
Char型の変数が保管できる値は1つの文字なので、2つ以上の文字を保管しようとするとエラーになるので注意が必要です。
※エラーになることを「コンパイルエラー」といいます
文字列
文字列の型は「String」という変数の型を使います。String型を使うとChar型では扱うことのできなかった、複数の文字を扱えるようになります。
String型を使うと、「あいうえお」や「リンコです」などの2文字以上の文字も変数に格納することができます。
文字を扱う時は、1文字を扱うことはあまりないと思うので、基本的にはChar型ではなくString型を使うことになると思います。
真偽値
真偽値の型は「Boolean」という変数の型を使います。これは「ブーリアン」と読みます。
他の型では、String型なら様々な文字列を、Int型なら範囲内の様々な整数を格納できましたが、Boolean型では2種類の値しか格納できません。
格納できる2種類の値は「true(トゥルー)」か「false(ファルス)」です。日本語で言うと、真か偽または、はいかいいえになります。
Boolean型は、式や変数に対して真か偽かを表す型なのですが、こちらに関しては【第5章】で詳しく勉強していきます。
Boolean型に関しては第5章で勉強するピヨ!
Kotlinの変数の宣言について
ここまでで、変数についてや変数の型について勉強していきました。では変数の宣言はどのようにするのでしょうか?
「var」と「val」の違い
変数を宣言する際に「var」や「val」というキーワードを使って宣言すると初めの方に説明しましたが、この2つの違いから説明していきます。
この2つには変数の宣言後、値を再代入できるかできないかの違いがあります。
変数を再代入できる「var」
varというキーワードを使って変数を宣言した時は、値を再代入することができます。
プログラミングをしている時に、とある変数の値をいろいろ変更したい場合が出てきます。そのような時は「val」ではなく「var」を使います。
メモ用紙に鉛筆で文字を書いて、書き直したい時に消しゴムを使って消して書き直す、といったイメージですね。
変数を再代入できない「val」
valというキーワードを使って変数を宣言した時は、値を再代入することができません。
この変数は絶対に変更しないといった場合や、他のプログラマーが間違って変更してしまわないようにしたい時は「var」ではなく「val」を使います。
今度はメモ用紙にボールペンで文字を書いたようなイメージです。
varでは再代入できて、valでは再代入できないピヨ!
変数の宣言の書式
valとvarの違いがわかったところで、変数の宣言の書式を見ていきましょう。
// valを使った変数の宣言の書式 val 変数名 : 変数の型 = 値 // varを使った変数の宣言の書式 var 変数名 : 変数の型 = 値
このようにvalとvarの部分が違うだけで、あとは宣言の書式に違いはありません。
変数名というのは、基本的に決まりはなく好きな名前にすることができますが、わかりやすい変数名にするようにしましょう。数字を格納するなら「number」といった感じです。
:の後の「変数の型」という部分は先ほど勉強した文字列なら「String型」、整数なら「Int型」といった型を記述します。
このように「=」の右側の値を左側の変数に代入されることを「変数に値を代入する」と言います。
変数を宣言してみよう
では実際に変数の宣言をしてみましょう。valとvarで基本的には同じなので、この記事ではvalでの変数の宣言を例として挙げていきます。
※varで変数を宣言した後、値を再代入の勉強は次の第3章で行っていきます
Int型
Int型の変数「number」に整数の10を代入するには、以下のように記述します。
val number : Int = 10 println(number)
また上記のように変数に値を代入した後、println関数を使って変数を指定することで、変数の中身を出力することができます。
出力文
変数numberを、println関数を使って出力すると以下のようになります。
10
Double型
Double型の変数「num」に浮動小数点の11.1を代入するには、以下のように記述します。
val num : Double = 11.1 println(num)
出力文
変数numを、println関数を使って出力すると以下のようになります。
11.1
Char型
Char型の変数「a」に文字の「あ」を代入するには、以下のように記述します。
val a : Char = 'あ' println(a)
整数や浮動小数点では値を代入する時なにも記号が必要ありませんでしたが、文字を代入する時は「”」で文字を囲う必要があるので覚えておきましょう。
出力文
変数aを、println関数を使って出力すると以下のようになります。
あ
String型
String型の変数「message」に文字列の「リンコです」を代入するには、以下のように記述します。
val message : String = "リンコです" println(message)
文字を代入する時は「”」で文字を囲う必要がりましたが、文字列を代入する時は「””」で文字列を囲う必要があります。
出力文
変数messageを、println関数を使って出力すると以下のようになります。
リンコです
このように、整数でも文字でも文字列でも基本的に書式は同じです。
ただし、文字では「”」で囲う必要があったり、文字列では「””」で囲う必要があるので、ここは忘れないようにするピヨ!
Kotlinの型推論について
最後に型推論について勉強していきます。変数を宣言する際、型を記述する必要があると説明しましたが、Kotlinでは型の記述を省略することができます。
型推論とは?
ではなぜ、型の記述を省略できるのでしょうか?Kotlinでは、変数に代入される値から型を推測できるという機能が備わっています。
その為、わざわざ型を記述する必要がありません。このようにKotlinでは極力プログラムの記述が減らせるよう、プログラマーにとって使いやすい設計のプログラミング言語になっています。
型推論の書式
では実際に、型推論がされている変数宣言の書式を見てみましょう。
// 型推論されていない書式 val 変数名 : 変数の型 = 値 // 型推論されている書式 val 変数名 = 値
このように「: 変数の型」の部分が省略され、見比べてみると一気に記述が楽になりました。
型推論で変数を宣言してみよう
最後に型推論された記述で、実際に変数を宣言してみましょう。
サンプルコード
val message = "リンコです" println(message)
出力
リンコです
記述が短くなりましたが、問題なく変数の値が出力されていることがわかります。
型推論だと一気に記述が楽になるピヨ!
まとめ
この記事では、プログラミング言語であるKotlinの変数や型の種類について、一から解説していきましたがいかがでしたでしょうか?今回の記事をまとめると以下のようになります。
- 変数は、文字や数字など好きな値を格納しておくことのできる便利な「入れ物」
- 変数名には任意の名前を付けられるが、値がわかりやすい名前にする
- 数値型(整数と浮動小数点)、文字型、文字列型、真偽値が型の基本
- 変数の宣言は型推論を使うと便利「val 変数名 = 値」
今回勉強した「変数」や「型の種類」はKotlinの基本になるので、何回も読み直してしっかり覚えておきましょう。
次回の記事では「変数の型変換と変数の値の更新」について勉強していくピヨ!
プログラミング未経験の方や入門レベルの方、Kotlinについて詳しくなりたい方は、また一緒に勉強するピヨ!
コメント