English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin 型変換

この記事では、型変換について学びます。例を用いて一つの型の変数を別の型に変換する方法について説明します。

Kotlinでは、一つの型の数値が自動的に別の型に変換されることはありません。これはJavaの数字変換の処理方法とは異なります。例えば:

Javaでは、

int number1 = 55;
long number2 = number1;    // 有効なコード

ここでは、int型のnumber1の値は自動的にlong型に変換され、変数numberに割り当てられます。2.

Kotlinでは、

val number1: Int = 55
val number2: Long = number1   // Error: type mismatch.

しかしLongの大きさがIntより大きい場合でも、Kotlinは自動的にIntをLongに変換しません。 

逆に、toLong()を使用して明示的にLong型に変換する必要があります。Kotlinはこのようにして、意図しないエラーを避けるために型安全を確保します。

val number1: Int = 55
val number2: Long = number1.toLong()

以下はKotlinで使用される型変換の関数リストです:

  • toByte() - 文字列を符号付きのバイト数に解析して結果を返します。

  • toShort() - Int値をShortに変換します。

  • toInt() - 文字列をInt数字に解析して結果を返します。

  • toLong() - 文字列をLong数字に解析して結果を返します。

  • toFloat() - 文字列をFloat数字に解析して結果を返します。

  • toDouble() - 文字列をDouble数字に解析して結果を返します。

  • toChar() - Int値をCharに変換します。

注:Boolean 型の変換はありません。

より大きな型からより小さな型への変換

前述の関数は、二つの方向で使用できます(より大きな型からより小さな型への変換およびより小さな型からより大きな型への変換)。

ただし、より大きな型からより小さな型への変換では値が切り捨てられることがあります。例えば、

fun main(args : Array<String>) {
    val number1: Int = 545344
    val number2: Byte = number1.toByte()
    println("number1 =1")
    println("number2 =2")
}

このプログラムを実行すると、出力は以下のようになります:

number1 = 545344
number2 = 64