Menu
Coddy logo textTech

Nilポインタ

CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 65/109。

nilポインタは、何も指していないポインタのことです。これはポインタ型のゼロ値です。

nilポインタを宣言します:

var ptr *int
fmt.Println(ptr)
fmt.Println(ptr == nil)

出力はポインタが nil であることを示しています:

<nil>
true

nilポインタをデリファレンスしようとすると、パニックが発生します:

var ptr *int
// これはプログラムをクラッシュさせます
// fmt.Println(*ptr)

ポインタをデリファレンスする前に、必ず nil かどうかを確認してください:

if ptr != nil {
    fmt.Println(*ptr)
}
challenge icon

チャレンジ

初心者

このチャレンジでは、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")
}
quiz icon腕試し

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

基礎のすべてのレッスン