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 許容値を扱うために提供している安全な方法を学びます。
チャレンジ
簡単次の nullable 変数を宣言してください:
- 値が
"Shadow"の、nicknameという名前の nullableString - 値が
nullの、ageという名前の nullableInt - 値が
99.5の、balanceという名前の nullableDouble
次に、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つの値すべてを別々の行に出力してください
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド