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) 를 사용할 때 타입이 맞지 않으면 런타임 패닉이 발생합니다.