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

Kotlin 変数と基本的な型

このチュートリアルでは、変数、変数の作成方法、Kotlin がサポートする基本的なデータ型について学びます。

ご存知の通り、変数はメモリ(ストレージエリア)にデータを格納する場所です。

ストレージエリアを示すために、各変数にはユニークな名前(識別子)を割り当てる必要があります。詳細についてはKotlin で変数に名前を付ける方法は?さらに詳しい情報

Kotlin で変数を宣言する方法は?

Kotlin で変数を宣言するには、var や val キーワードを使用します。以下はその例です:

val language = "French"
val score = 95

この記事では、var と val の違いについて詳しく説明します。今は、変数の宣言に集中しましょう。

ここでは、language は String 型の変数であり、score は Int 型の変数です。変数のタイプを指定する必要はありません;Kotlin は自動的に変数のタイプを指定します。コンパイラは初期化式表現(上記のプログラムでは、「French」が文字列であることを知っています)を通じてそれを判断します。95整数値(Int)を知っています。これはプログラミングでは タイプ推論

しかし、以下のような操作を行う場合は、明示的にタイプを指定できます:

var language: String = "French"
val score: Int = 95

上記の例では、変数の宣言中に変数を初期化しましたが、これは必須ではありません。変数を一つの文で宣言し、そのタイプを指定し、その後プログラムの別の文で初期化することもできます。

var language: String      //String 型の変数の宣言
... .. ...
language = "French"       //変数の初期化
val score: Int          //Int 型の変数の宣言
... .. ...
score = 95             //変数の初期化

以下にいくつかの誤例を挙げます。

var language           // エラー 
language = "French"

ここでは、language は変数のタイプが明示的に指定されておらず、宣言時に変数が初期化されていません。

var language: String
language = 14         // エラー

ここでは、14(整数値)異なるタイプ(String)の変数に割り当てられる場合、エラーが発生します。

var と val の違い

  • val(不可変リファレンス)- 値が割り当てられた後は、val キーワードで宣言された変数は変更できません。これは Java での final 変数に似ています。

  • var(可変リファレンス)- var キーワードで宣言された変数は、後でプログラムで変更できます。これは一般的な Java 変数に対応しています。

以下にいくつかの例を示します:

val language = "French"
language = "German"

ここでは、変数 language が再割り当てされ、値 "German" が与えられます。変数が var で宣言されているため、このコードは問題なく動作します。

val language = "French"
language = "German"      // エラー

上記の例では、language変数をGermanに再割り当てすることはできません。なぜなら、その変数はvalで宣言されているからです。

今、Kotlinの変数が何かを知ったので、次にKotlinの変数が取ることができる異なる値を学ぶべきです。

Kotlin 基本型

KotlinはJavaに似た静的型言語です。つまり、コンパイル時に変数の型が既知です。例えば、

val language: Int
val marks = 12.3

ここでは、コンパイラはlanguageデータ型がIntであることを知っており、コンパイル前にmarksがDoubleデータ型として指定されています。

Kotlinのビルトイン型は以下のように分類できます:

  • Numbers(数字)

  • Characters(キャラクタ)

  • Booleans(ボールルン)

  • Arrays(配列)

Kotlin 数字型(Numbers)

Kotlinの数字はJavaに似ています。以下があります。6の種類のビルトイン型で数字を表します。

  • Byte

  • Short

  • Int

  • Long

  • Float

  • Double

1、Byte データ型

  • Byteデータ型の値の範囲は -128 まで 127(8ビットの有符号二進数補码整数)。

  • 変数の値が[-128、127の範囲内にあれば、Intまたは他の整数データ型に代わりに使用できます。メモリを節約できます。

fun main(args : Array<String>) {
    val range: Byte = 112
    println("$range")
    // 以下のコードはエラーを表示しています。なぜですか?
    // val range1: Byte = 200
}

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

112

2、Short データ型

  • Shortデータ型の値の範囲は -32768 まで 32767 (16ビットの有符号二進数補码整数)。

  • 変数の値が[-32768、32767の範囲内にあれば、他の整数データ型に代わりに使用できます。メモリを節約できます。

fun main(args : Array<String>) {
    val temperature: Short = -11245
    println("$temperature")
}

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

-11245

3、Int データ型

  • Intデータ型の値の範囲は-231 まで 231-1(32ビットシンボルの有符号二進数補码整数)。

fun main(args : Array<String>) {
    val score: Int =  100000
    println("$score")
}

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

100000

変数に値を割り当てる場合、 -231 から 231-1の整数で明示的にデータ型を指定していない場合、その変数はIntデータ型になります。例えば、

fun main(args : Array<String>) {
   // scoreはIntデータ型
    val score = 10
    println("$score")
}

IntelliJ IDEAを使用している場合、カーソルを変数内に置いてCtrl + Shift + Pを確認します。

4、Long データ型

  • Longデータ型の範囲は -263 まで 263-1(64ビットシンボルの二進数補码整数)。

fun main(args : Array<String>) {
    val highestScore: Long = 9999
    println("$highestScore")
}

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

9999

変数に割り当てられる値が大きい場合231-1 またはより小さい -231 の整数値(データ型が明示的に指定されていない場合)、その変数はLongデータ型になります。例えば、

val distance = 10000000000  //  Longデータ型の変数distance

同様に、大文字のLを使用して変数のデータ型をLongに指定することもできます。例えば、

val distance = 100L    // Longデータ型のdistance値

5、Doubleデータ型

  • Doubleデータ型は双精度です64ビット浮動小数点数。

fun main(args : Array<String>) {
    // distanceはDoubleデータ型です
    val distance = 999.5
    println("$distance")
}

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

999.5

6、Floatデータ型

  • Floatデータ型は単精度です32ビット浮動小数点数。

fun main(args : Array<String>) {
    // distance is of type Float
    val distance = 19.5F
    println("$distance")
}

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

19.5

をご覧ください。上記のプログラムでは使用しています。 19.5F 19.5これは 19.5 はDoubleリテラルであり、したがってDouble値をFloatデータ型に割り当てることができません。変数

コンパイラに 19.5 視覚的にFloatとして見なす場合、最後にFを使用する必要があります。

プログラムで変数にどのような数字値が割り当てられるか不明な場合、Numberデータ型として指定できます。これにより、変数に整数値や浮点値を割り当てることができます(一度に一つ)。例えば:

fun main(args : Array<String>) {
    var test: Number = 12.2
    println("$test")
    test = 12
    // Numberデータ型はIntにスマートに変換されます
    println("$test")
    test = 120L
    // Numberデータ型はLongにスマートに変換されます
    println("$test")
}

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

12.2
12
120

Kotlinの文字データ型(Char)

Kotlinでは、文字を表すためにCharデータ型を使用します。

Javaとは異なり、Charデータ型は数字として見なせません。詳細についてはこのページを参照してください。Javaのcharデータ型さらに詳しい情報。

fun main(args : Array<String>) {
    val letter: Char
    letter = 'k'
    println("$letter")
}

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

k

Javaでは以下のような操作ができます:

char letter = 65;

しかし、以下のコードはKotlinでエラーを返します。

var letter: Char = 65  // エラー

Kotlinのブール型(Boolean)

  •  Booleanデータ型には二つの可能な値があります:trueまたはfalse。

fun main(args : Array<String>) {
    val flag = true
    println("$flag")
}

ブール値は、決定文(後の章で説明します)に使用されます。

Kotlin 配列(Array)

配列は、一種のデータ(値)を含むコンテナです。例えば、次のように容纳できる100個のInt型値の配列。

Kotlinでは、配列はArrayクラスで表されます。このクラスにはgetおよびset関数、size属性、その他の役立つメンバ関数があります。

Kotlin 文字列(String)

Kotlinでは、文字列はStringクラスで表されます。このような文字列リテラル"this is a string"は、このクラスのインスタンスとして実現されます。