Nilポインタ
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 65/109。
nilポインタは、何も指していないポインタのことです。これはポインタ型のゼロ値です。
nilポインタを宣言します:
var ptr *int
fmt.Println(ptr)
fmt.Println(ptr == nil)出力はポインタが nil であることを示しています:
<nil>
truenilポインタをデリファレンスしようとすると、パニックが発生します:
var ptr *int
// これはプログラムをクラッシュさせます
// fmt.Println(*ptr)ポインタをデリファレンスする前に、必ず nil かどうかを確認してください:
if ptr != nil {
fmt.Println(*ptr)
}チャレンジ
初心者このチャレンジでは、Goのnilポインタを扱います。nilポインタとは、どのメモリ番地も指していないポインタのことです。
あなたのタスクは、ポインタがnilであるかどうかを確認し、適切なメッセージを出力することです。
コードにはすでにnilに設定されたポインタ変数があります。ポインタがnilかどうかをチェックし、それに応じてメッセージを出力するコードを追加する必要があります。
チートシート
nilポインタとは、何も指していないポインタのことです。これはポインタ型のゼロ値です。
nilポインタを宣言します:
var ptr *int
fmt.Println(ptr) // <nil>
fmt.Println(ptr == nil) // trueパニックを避けるため、デリファレンス(参照解除)する前に必ずポインタがnilかどうかを確認してください:
if ptr != nil {
fmt.Println(*ptr)
}自分で試してみよう
package main
import "fmt"
func main() {
// これは整数へのnilポインタです
var ptr *int
// TODO: ptrがnilかどうかを確認する
// もしnilなら、"The pointer is nil"と出力する
// もしnilでないなら、"The pointer is not nil"と出力する
fmt.Println("Program completed")
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。