Menu
CoddyTech

Null安全性とは

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

多くのプログラミング言語でよくあるエラーの一つは、存在しないもの、つまり null 値にアクセスしようとすることです。これは、変数が実際のデータではなく「何もない」状態を保持しているときに発生します。

ユーザーの名前を尋ねたのに、ユーザーが名前を入力してくれなかった場合を想像してください。コードが事前に確認せずにその空の名前を使おうとすると、プログラムがクラッシュします。この種のバグは非常によくあるため、「10億ドルの誤り」と呼ばれています。

Kotlinの解決策:Null安全性

Kotlinは、このようなクラッシュをなくすために設計されました。デフォルトでは、Kotlinの変数はnull値を保持できません。

fun main() {
    var name: String = "Alice"
    name = null  // エラー!コンパイルできません
}

コンパイラは、コードを実行する前にこの問題を検出します。これがKotlinが「null安全」である理由です。言語そのものが、本来使うべきでない場所で誤ってnullを使うことを防いでくれます。

これからのレッスンでは、必要になったときにnullである可能性がある値を扱いながら、コードがクラッシュしないよう安全に保つ方法を学びます。

challenge icon

チャレンジ

簡単

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() を使って、両方の値を別々の行に出力してください
    
}
quiz icon腕試し

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

基礎のすべてのレッスン

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