Null安全性とは
CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 12/93。
多くのプログラミング言語では、最もよくあるエラーの一つが、存在しないもの、つまり null 値にアクセスしようとすることです。これは、変数が実際のデータではなく「何もない」状態を保持しているときに発生します。
ユーザーの名前を尋ねたのに、ユーザーが名前を入力していなかった場合を想像してみてください。コードが最初に確認せずにその空の名前を使おうとすると、プログラムがクラッシュします。この種のバグは非常によくあるため、「10億ドルの間違い」と呼ばれてきました。
Kotlinの解決策:Null安全性
Kotlinは、こうしたクラッシュをなくすために設計されました。デフォルトでは、Kotlinの変数はnull値を保持できません:
fun main() {
var name: String = "Alice"
name = null // エラー!コンパイルできません
}コンパイラは、コードが実行される前にこの問題を検出します。これがKotlinを「null安全」にしている理由です。言語自体が、本来nullを使用すべきでない場所で誤って使用するのを防ぎます。
これからのレッスンでは、Kotlinによって、実際に必要なときにnullかもしれない値を扱いながら、コードをクラッシュから安全に保つ方法を学びます。
チャレンジ
簡単Kotlin の null 安全性を示すために、null 非許容変数を 2 つ宣言します。
- 値が
"Kotlin"の、usernameという名前のString変数 - 値が
100の、scoreという名前のInt変数
次に、println() を使用して両方の値を別々の行に出力します。
覚えておきましょう:Kotlin では、通常の(null 非許容)型は
null値を保持できません。コンパイラーによって、変数には常に有効なデータが含まれることが保証されます。
自分で試してみよう
fun main() {
// TODO: 以下にコードを書いてください
// null非許容のString変数 'username' を値 "Kotlin" で宣言する
// null非許容のInt変数 'score' を値 100 で宣言する
// println()を使って両方の値を別々の行に出力する
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド