基本型
Kotlinのすべての変数とデータ構造には型があります。型は重要です。なぜなら、その変数やデータ構造に対して何ができるかをコンパイラに伝えるからです。言い換えれば、どのような関数やプロパティを持っているかを示します。
前章の例では、Kotlinは customers が Int 型であることを判断できました。Kotlinが型を推論(infer)するこの機能は、型推論(type inference)と呼ばれます。customers には整数値が代入されています。これにより、Kotlinは customers が数値型である Int であると推論します。その結果、コンパイラは customers に対して算術演算を実行できることを認識します。
kotlin
fun main() {
var customers = 10
// 一部の顧客が列を離れる
customers = 8
customers = customers + 3 // 加算の例: 11
customers += 7 // 加算の例: 18
customers -= 3 // 減算の例: 15
customers *= 2 // 乗算の例: 30
customers /= 3 // 除算の例: 10
println(customers) // 10
}
+=、-=、*=、/=、%=は複合代入演算子(augmented assignment operators)です。詳細については、複合代入(Augmented assignments)を参照してください。
Kotlinには、主に以下の基本型があります。
| カテゴリ | 基本型 | サンプルコード |
|---|---|---|
| 整数 | Byte, Short, Int, Long | val year: Int = 2020 |
| 符号なし整数 | UByte, UShort, UInt, ULong | val score: UInt = 100u |
| 浮動小数点数 | Float, Double | val currentTemp: Float = 24.5f, val price: Double = 19.99 |
| 論理値 | Boolean | val isEnabled: Boolean = true |
| 文字 | Char | val separator: Char = ',' |
| 文字列 | String | val message: String = "Hello, world!" |
基本型とそのプロパティの詳細については、型の概要(Types overview)を参照してください。
この知識があれば、変数を宣言して後で初期化することができます。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)
// Variable 'd' must be initialized (変数 '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 = '
'
}