はじめに
Kotlinは、プログラムの中で使用する変数の型を明確に指定する必要があります。型を理解することで、より効率的で安全なコードを書くことが可能になります。この記事では、Kotlinの主要な型とその宣言方法について詳しく説明します。
Kotlinのプリミティブ型(基本型)
Kotlinには、Javaと同様にプリミティブ型存在しますが、Kotlinではこれらもすべてオブジェクトとして扱われます。以下がKotlinの代表的なプリミティブ型です。
整数型
- Byte: 8ビット整数 (-128から127)
- Short: 16ビット整数 (-32768から32767)
- Int: 32ビット整数 (-2,147,483,648から2,147,483647)
- Long: 64ビット整数 (-9,223,372,036,854,775,808から9,223,372,036,854,775,807)
浮動小数点数型
- Float: 32ビット浮動小数点数
- Double: 64ビット浮動小数点数
文字と文字列
- Char: 1文字 (例: ‘a’, ‘1’)
- String: 文字列 (例: “Hello, Kotlin!’)
論理型
- Boolean: 真偽値 (trueまたはfalse)
型の宣言方法
Kotlinでは、型の宣言は以下のように行います。
val number: Int = 42
val pi: Double = 3.14159
val isKotlinFun: Boolean = true
val letter: Char = 'K'
val greeting: String = "Hello, Kotlin!"
valは再代入不可の変数を宣言し、varを使用することで再代入可能な変数を宣言します。
var count: Int = 10 //後で再代入可能
count = 20
Null許容型 (Nullable型)
Kotlinの大きな特徴の1つに、ヌル許容型があります。Kotlinでは、デフォルトで変数にヌルを代入することができません。しかし、型に?をつけることで、ヌルを許容する型(Nullable型)を作成することができます。
Null許容型の宣言
val name: String? = null // String型の変数にnullを許容
安全呼び出し (Safe call)
安全にNull許容型の変数にアクセスするために、?.を使ってアクセスします。
val length: Int? = name?.length //nameがnullでない場合に長さを取得
エルビス演算子 (Elvis operator)
エルビス演算子 (?: )を使うと、値がNullの場合に代替値を指定できます。
val length: Int = name?.length ?: 0 // nameがnullの場合、0を代入
型推論
Kotlinは非常に強力な型推論機能を持っており、明示的に型を指定しなくても、Kotlinコンパイラが自動的に変数の型を推論してくれます。
型推論の例
val number = 42 // Int型と推論
val pi = 3.14159 // Double型と推論
val isKotlinFun = true // Boolean型と推論
上記のように、値から型が明確な場合、型を省略して宣言することができます。これにより、コードがより簡潔に記述できます。
型変換
Kotlinでは、異なる型間の自動変換は行われません。そのため、型変換を行う場合は明示的に変換関数を使用する必要があります。
型変換の例
val number: Int = 42
val longNumber: Long = number.toLong() // IntからLongへ変換
val doubleNumber: Double = number.toDouble() // IntからDoubleへ変換
このように、変換にはそれぞれの型に応じたメソッド(toLong(), toDouble()など)を使用します。
おわりに
Kotlinの型システムは、静的型付けでありながら強力な型推論やヌル安全性を提供しています。これにより、開発者はエラーを事前に防ぐことができ、安全で効率的なコードを書くことができます。型の宣言方法や使い方を理解し、Kotlinの開発をより快適に進めていきましょう。

Kotlinの型がNull安全でよかった。おかげで、自分の人生がNullになる心配はしなくて済むね!
コメント