Kotlinは、Javaと比較してNull安全性を強化したプログラミング言語です。この記事では、KotlinのNullable型(?を持つ型)とNon-Nullable型(?を持たない型)の違いについて詳しく説明します。また、具体的なコード例を通じて、どのように使われるかを示します。

Nullable型とNon-Nullable型の違い

Nullable型

Nullable型は、値がnullを持つ可能性がある場合に使用されます。これは、変数がnullを許容することを示します。Nullable型は、変数の宣言時に型名の後に?を付けて定義します。

例えば、次のコードはNullable型の変数を宣言しています。

var name: String? = null

この場合、name変数は文字列またはnullを格納できます。

Non-Nullable型

Non-Nullable型は、nullを許容しない型です。値がnullになる可能性がないことを保証します。Non-Nullable型は、通常の型宣言と同じように定義します。

例えば、次のコードはNon-Nullable型の変数を宣言しています。

var age: Int = 25

この場合、age変数は整数型で、nullを格納できません。

Nullable型とNon-Nullable型の使用例

Nullable型とNon-Nullable型の違いは、実際のコードでどのように影響するかを示すことができます。

fun main() {
    var nullableName: String? = null
    var nonNullableName: String = "John"

    println(nullableName?.length) // null
    println(nonNullableName.length) // 4

    nullableName = "Alice"
    nonNullableName = "Bob"

    println(nullableName?.length) // 5
    println(nonNullableName.length) // 3
}

上記の例では、nullableName変数にはnullが設定でき、nonNullableName変数にはnullを設定できません。そのため、Nullable型の変数を使用する場合、nullチェックを行って安全にアクセスする必要があります(?.演算子を使用)。一方、Non-Nullable型の変数は、nullチェックなしで直接アクセスできます。

KotlinのNullable型とNon-Nullable型は、プログラムの安全性とエラーの早期検出に役立ちます。適切に使うことで、nullに関連するバグを最小限に抑えることができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です