GO · 기초 문법
빈 인터페이스 & any 타입
any(= interface{})는 모든 타입을 담을 수 있는 빈 인터페이스입니다. 제네릭 도입 전 범용 컨테이너로 사용되었습니다.
기초 문법중급anyinterfaceempty-interfacegenerics
핵심 설명
any(= interface{})는 모든 타입을 담을 수 있는 빈 인터페이스입니다. 제네릭 도입 전 범용 컨테이너로 사용되었습니다.
Go code
package main
import "fmt"
// any는 interface{}의 별칭 (Go 1.18+)
func printAll(values ...any) {
for i, v := range values {
fmt.Printf("[%d] %T = %v\n", i, v, v)
}
}
// 타입 안전한 대안: 제네릭
func first[T any](slice []T) (T, bool) {
if len(slice) == 0 {
var zero T
return zero, false
}
return slice[0], true
}
func main() {
printAll("Go", 42, true, 3.14)
v, ok := first([]string{"a", "b"})
fmt.Println(v, ok) // a true
}학습 팁
Go 1.18부터 any가 interface{}의 공식 별칭입니다. 새 코드에서는 any를 사용하세요.
주의할 점
any 타입을 남용하면 타입 안전성을 잃습니다. 가능하면 제네릭을 사용하여 컴파일 타임에 타입을 검증하세요.
자주 묻는 질문
빈 인터페이스 & any 타입란 무엇인가요?
any (= interface{} )는 모든 타입을 담을 수 있는 빈 인터페이스입니다. 제네릭 도입 전 범용 컨테이너로 사용되었습니다.
빈 인터페이스 & any 타입 학습 시 주의할 점은 무엇인가요?
any 타입을 남용하면 타입 안전성을 잃습니다. 가능하면 제네릭을 사용하여 컴파일 타임에 타입을 검증하세요.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.