Skip to content

基本データ型

Kotlinのすべての変数とデータ構造には型があります。型は、その変数またはデータ構造で何ができるかをコンパイラに伝えるため重要です。言い換えれば、どのような関数とプロパティを持っているかを示します。

前の章で、Kotlinは前の例でcustomersInt型であることを認識できました。 Kotlinが型を推論する能力は型推論と呼ばれます。customersには整数値が代入されています。これにより、Kotlinはcustomersが数値型Intであると推論します。結果として、コンパイラはcustomersに対して算術演算を実行できることを認識します。

kotlin
fun main() {
    var customers = 10

    // Some customers leave the queue
    customers = 8

    customers = customers + 3 // Example of addition: 11
    customers += 7            // Example of addition: 18
    customers -= 3            // Example of subtraction: 15
    customers *= 2            // Example of multiplication: 30
    customers /= 3            // Example of division: 10

    println(customers) // 10
}

+=-=*=/=、および%=は複合代入演算子です。詳細は複合代入を参照してください。

Kotlinには、以下の基本データ型があります。

カテゴリ基本データ型コード例
整数型Byte, Short, Int, Longval year: Int = 2020
符号なし整数型UByte, UShort, UInt, ULongval score: UInt = 100u
浮動小数点数型Float, Doubleval currentTemp: Float = 24.5f, val price: Double = 19.99
論理型Booleanval isEnabled: Boolean = true
文字型Charval separator: Char = ','
文字列型Stringval message: String = "Hello, world!"

基本データ型とそのプロパティの詳細については、基本データ型を参照してください。

この知識があれば、変数を宣言し、後で初期化することができます。Kotlinは、変数が最初に読み取られる前に初期化されていれば、これを管理できます。

変数を初期化せずに宣言するには、:を使ってその型を指定します。例えば、

kotlin
fun main() {
    // 初期化せずに宣言された変数
    val d: Int
    // 初期化された変数
    d = 3

    // 明示的に型指定され初期化された変数
    val e: String = "hello"

    // 変数は初期化されているため読み取り可能
    println(d) // 3
    println(e) // hello
}

変数が読み取られる前に初期化しない場合、エラーが発生します。

kotlin
fun main() {
    // 初期化せずに宣言された変数
    val d: Int
    
    // エラーをトリガーします
    println(d)
    // 変数 'd' は初期化する必要があります
}

基本データ型を宣言する方法がわかったところで、次はコレクションについて学びましょう。

練習問題

演習

各変数に正しい型を明示的に宣言してください。

kotlin
fun main() {
    val a: Int = 1000 
    val b = "log message"
    val c = 3.14
    val d = 100_000_000_000_000
    val e = false
    val f = '
'
}
解答例
kotlin
fun main() {
    val a: Int = 1000
    val b: String = "log message"
    val c: Double = 3.14
    val d: Long = 100_000_000_000_000
    val e: Boolean = false
    val f: Char = '
'
}