データ型

Kotlinの基本構文における「データ型」について詳しく説明します。Kotlinは静的型付け言語であり、変数や関数の型はコンパイル時に決定されます。ただし、型推論(type inference)によって明示的に型を指定しなくても、コンパイラが自動で型を推測してくれる点が特徴です。


1. 基本的なデータ型(プリミティブ型)

Kotlinでは、すべての型はオブジェクトとして扱われます。Javaのプリミティブ型に相当する型も、Kotlinではクラスとして提供されています。

型名 ビット数 説明
Byte 8ビット 符号付き整数(-128〜127) val b: Byte = 10
Short 16ビット 符号付き整数(-32,768〜32,767) val s: Short = 1000
Int 32ビット 一般的な整数型 val i: Int = 12345
Long 64ビット 大きな整数 val l: Long = 123456L
Float 32ビット 単精度浮動小数点数 val f: Float = 3.14f
Double 64ビット 倍精度浮動小数点数 val d: Double = 3.14
Boolean 1ビット 真理値(true / false val flag: Boolean = true
Char 16ビット Unicode文字 val c: Char = 'A'

2. 文字列型

  • String型は文字列を扱うクラスです。

  • 文字列は"(ダブルクオート)で囲みます。

  • 文字列テンプレートを使って変数を埋め込むこともできます。

kotlin
val name: String = "Kotlin" val message = "Hello, $name"

3. 型推論(Type Inference)

Kotlinでは、初期化と同時に値を代入すれば、型を省略できます。

kotlin
val age = 30 // KotlinがInt型と推論 val pi = 3.1415 // KotlinがDouble型と推論 val greeting = "Hi!" // KotlinがString型と推論

4. Any型・Unit型・Nothing型

  • Any:すべてのクラスのスーパータイプ。JavaのObjectに相当。

  • Unit:戻り値がない関数に使う型。Javaのvoidに相当。

  • Nothing:値を返さない関数(例外を投げるだけなど)に使う型。

kotlin
fun printMessage(message: String): Unit { println(message) } fun fail(): Nothing { throw IllegalStateException("エラー発生") }

5. Nullable型(null許容型)

Kotlinはnull安全を重視しており、デフォルトではnullを代入できません。nullを許可したい場合は型の末尾に?をつけます。

kotlin
var name: String = "Kotlin" // name = null ← コンパイルエラー var nickname: String? = null // null許容型

null許容型の変数にアクセスするには「安全呼び出し演算子 ?.」などを使います。

kotlin
println(nickname?.length) // nullでなければ長さを出力

6. 型の変換(キャスト)

Kotlinでは、明示的な型変換が必要です。自動的な拡張変換(例:IntからLong)は行われません。

kotlin
val num: Int = 100 val longNum: Long = num.toLong()

まとめ

Kotlinのデータ型は、安全性と簡潔さを両立するよう設計されています。基本型はJavaに似ていますが、null安全性や型推論、オブジェクトとしての統一的な扱いが特徴です。

生成日:2025/05/04