GO · 기초 문법
타입 스위치
switch v.(type)으로 인터페이스 값의 타입에 따라 분기합니다. 여러 타입을 한 번에 처리할 수 있습니다.
기초 문법중급type-switchanyinterfacepattern-matching
핵심 설명
switch v.(type)으로 인터페이스 값의 타입에 따라 분기합니다. 여러 타입을 한 번에 처리할 수 있습니다.
Go code
package main
import "fmt"
func classify(v any) string {
switch x := v.(type) {
case nil:
return "nil 값"
case int, int64:
return fmt.Sprintf("정수: %v", x)
case string:
return "문자열 길이: " + fmt.Sprint(len(x))
case bool:
if x {
return "참"
}
return "거짓"
case []int:
return fmt.Sprintf("정수 슬라이스 (%d개)", len(x))
default:
return fmt.Sprintf("기타: %T", x)
}
}
func main() {
values := []any{42, "Go", true, nil, []int{1, 2}}
for _, v := range values {
fmt.Println(classify(v))
}
}학습 팁
타입 스위치에서 case int, int64:처럼 여러 타입을 나열하면, 변수 x는 원래 인터페이스 타입으로 남습니다.
주의할 점
타입 스위치와 일반 switch를 혼동하지 마세요. switch v.(type) 구문은 인터페이스 변수에서만 사용할 수 있습니다.
자주 묻는 질문
타입 스위치란 무엇인가요?
switch v.(type) 으로 인터페이스 값의 타입에 따라 분기합니다. 여러 타입을 한 번에 처리할 수 있습니다.
타입 스위치 학습 시 주의할 점은 무엇인가요?
타입 스위치와 일반 switch 를 혼동하지 마세요. switch v.(type) 구문은 인터페이스 변수에서만 사용할 수 있습니다.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.