PHpullh
학습 라이브러리/Go/타입 단언 (Type Assertion)

GO · 기초 문법

타입 단언 (Type Assertion)

인터페이스 값에서 구체적인 타입을 추출합니다. 콤마-ok 패턴으로 안전하게 타입을 확인합니다.

기초 문법중급type-assertionanyinterfacecomma-ok

핵심 설명

인터페이스 값에서 구체적인 타입을 추출합니다. 콤마-ok 패턴으로 안전하게 타입을 확인합니다.

Go code

package main

import "fmt"

func describe(i any) string {
	// 콤마-ok 패턴 (안전)
	if s, ok := i.(string); ok {
		return "문자열: " + s
	}
	if n, ok := i.(int); ok {
		return fmt.Sprintf("정수: %d", n)
	}
	return "알 수 없는 타입"
}

func main() {
	var v any = "Hello"
	s := v.(string)   // 확실할 때만 사용
	fmt.Println(s)

	fmt.Println(describe("Go"))
	fmt.Println(describe(42))
	fmt.Println(describe(3.14))
}

학습 팁

콤마-ok 패턴(v, ok := i.(T))을 사용하면 타입이 맞지 않아도 패닉 없이 ok=false를 반환합니다.

주의할 점

콤마-ok 패턴 없이 i.(T)를 사용할 때 타입이 맞지 않으면 런타임 패닉이 발생합니다.

자주 묻는 질문

타입 단언 (Type Assertion)란 무엇인가요?

인터페이스 값에서 구체적인 타입을 추출합니다. 콤마-ok 패턴으로 안전하게 타입을 확인합니다.

타입 단언 (Type Assertion) 학습 시 주의할 점은 무엇인가요?

콤마-ok 패턴 없이 i.(T) 를 사용할 때 타입이 맞지 않으면 런타임 패닉이 발생합니다.

Continue Learning

Go 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.