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