Kotlinの基本的な型

Kotlinでは全てはオブジェクトであり、Javaにあるようなプリミティブはありません。以下に挙げるような基本的な型もオブジェクトとして扱われます。ただし、これらの基本的な型はコンパイル時にプリミティブへと最適化されるため、パフォーマンスが犠牲になることはありません(総称型の型パラメータで使われている場合など、一部例外はある)。

真偽値型(Boolean)

Boolean型は真偽値を表し、値としてtrueまたはfalseをとります。trueは真、falseは偽を表します。Boolean型の変数は、以下のように宣言します。

val boolean: Boolean = true

※ 説明のため明示的に型を記載していますが、実際にコードを書く際は、型推論を用いて適宜型の記載を省略してください。

以下のように、何らかの評価結果を直接代入することも可能です。括弧は省略しても問題ありません。

val boolean: Boolean = (a > 0)

真偽値の判定には!を用います。not()を用いても同様の結果を得ることができます。個人的には、not()を使った方が可読性が高くて良いかな、と思います。

!boolean
boolean.not()

数値型(Number)

Kotlinでは、全ての数値型はNumberを親クラスに持ち、Number型で用意されている関数を使うことができます。また、数値型同士の暗黙的な型変換を行うことはできず、Number型で用意されているtoInt()toDouble()などを用いて明示的に型変換を行います。

整数型

Kotlinで用意されている整数型は、Byte型、Short型、Int型、Long型があります。

ビット数最小値最大値
Byte8-128127
Short16-32,76832,767
Int32-2,147,483,6482,147,483,647
Long64-9,223,372,036,854,775,8089,223,372,036,854,775,807

基本はInt型

これらの数値型の中で、基本となるのはInt型になると思います。もちろん、要件次第で他の型を使うのは問題ありません。

数値に区切りを入れる

数値リテラルには、_を用いて区切りを入れることができます。_を用いて区切りを入れた場合、実際の数値には影響を与えません。

val int: Int = 1_000_000 // 1000000

Long型の宣言

Long型は、数値リテラルの後にLを付けて表します。

val long: Long = 0L

Long型の変数は以下のように数値リテラルにLを付けずに宣言することも可能ですが、Long型を使いたい時に誤ってInt型を使用しないよう、明示的にLを付けた方が良いでしょう。

val long: Long = 0

浮動小数点型

Kotlinで用意されている浮動小数点型は、Float型とDouble型があります。整数を扱う整数型に対して、浮動小数点型は少数を扱います。

ビット数
Float32
Double64

Float型の宣言

Float型は、Long型の宣言と同様に、数値リテラルの後にfまたはFを付けて表します。Long型と異なり、Float型は明示的にfまたはFを付けなければなりません。

val float: Float = 0.0f

文字型(Char)

Char型は、単一の文字を表します。文字リテラルをシングルクオート'で囲んで表します。

val char: Char = 'a'

文字列型(String)

String型は、文字列を表します。文字リテラルをダブルクオート"で囲んで表します。

val string: String = "string"

筆者

茨城県つくば市在住のソフトウェアエンジニアです。得意領域はAndroidとFlutterです。「Jetpack ComposeによるAndroid MVVMアーキテクチャ入門」の著者です。

👉もっと詳しく