Menu
Coddy logo textTech

Nullable型

CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 13/93。

「何もない」状態を保持できる変数が本当に必要になることがあります。たとえば、ユーザーのミドルネームが存在しない場合や、検索で結果が返されない場合です。Kotlin では、これをnull 許容型によって実現できます。

型を null 許容にするには、型名の後に ? を追加します。

fun main() {
    var middleName: String? = "Marie"
    middleName = null  // これは許可されるようになりました!
    
    val age: Int? = null  // Int または null を保持できます
}

?はKotlinに「この変数はnullかもしれないので、注意して扱ってください」と伝えます。?がなければ、その型はnull非許容型となり、決してnullを保持できません。

重要: null許容型とnull非許容型は異なります。null許容値をnull非許容変数に直接代入することはできません。

fun main() {
    val nullableName: String? = "Alice"
    val regularName: String = nullableName  // エラー!
}

この区別は意図的なものです。値を使用する前に、null である可能性に対処するよう求められます。これからのレッスンでは、Kotlin が null 許容値を扱うために提供している安全な方法を学びます。

challenge icon

チャレンジ

簡単

次の nullable 変数を宣言してください:

  • 値が "Shadow" の、nickname という名前の nullable String
  • 値が null の、age という名前の nullable Int
  • 値が 99.5 の、balance という名前の nullable Double

次に、println() を使って、3つすべての値をそれぞれ別の行に出力してください。

型名の後に ? を付けて nullable にすることを忘れないでください。null 値を出力すると、null という単語が表示されます。

自分で試してみよう

fun main() {
    // TODO: 次のnullable変数を宣言してください:
    // 1. 値が "Shadow" の 'nickname' という名前のnullable String
    // 2. 値が null の 'age' という名前のnullable Int
    // 3. 値が 99.5 の 'balance' という名前のnullable Double
    
    // 次に、3つの値すべてを別々の行に出力してください
    
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド