Menu
Coddy logo textTech

Nil 포인터

Coddy GO 여정의 기초 섹션에 포함된 레슨 — 109개 중 65번째.

nil 포인터는 아무것도 가리키지 않는 포인터입니다. 이는 포인터 타입의 제로 값(zero value)입니다.

nil 포인터를 선언합니다:

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

출력 결과는 포인터가 nil임을 보여줍니다:

<nil>
true

nil 포인터를 역참조하려고 시도하면 패닉(panic)이 발생합니다:

var ptr *int
// 이 코드는 프로그램을 중단시킵니다
// fmt.Println(*ptr)

역참조하기 전에 항상 포인터가 nil인지 확인하세요:

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

챌린지

초급

이 챌린지에서는 Go의 nil 포인터를 다룹니다. nil 포인터는 어떠한 메모리 주소도 가리키지 않는 포인터입니다.

여러분의 과제는 포인터가 nil인지 확인하고 적절한 메시지를 출력하는 것입니다.

코드에는 이미 nil로 설정된 포인터 변수가 있습니다. 포인터가 nil인지 확인하고 그에 따라 메시지를 출력하는 코드를 추가해야 합니다.

치트 시트

nil 포인터는 아무것도 가리키지 않는 포인터입니다. 포인터 타입의 제로 값(zero value)입니다.

nil 포인터를 선언합니다:

var ptr *int
fmt.Println(ptr)        // <nil>
fmt.Println(ptr == nil) // true

패닉(panic)을 방지하기 위해 역참조(dereferencing)를 하기 전에는 항상 포인터가 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실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨