Go

Reflection

reflect 패키지, 타입 검사, 값 조작, struct tags, 사용 사례, 성능

20 면접 질문·
Senior
1

Go의 reflect 패키지란 무엇입니까?

답변

reflect 패키지는 런타임에 타입과 값을 검사하고 조작할 수 있게 해줍니다. 제네릭 라이브러리(JSON 마샬링, ORM) 구현에 사용되지만, 타입 안정성과 성능을 희생하므로 애플리케이션 코드에서 직접 사용하는 것은 권장되지 않습니다.

2

reflect 패키지로 변수의 타입을 얻으려면 어떻게 해야 합니까?

답변

reflect.TypeOf() 함수는 인자로 전달된 인터페이스의 동적 타입을 나타내는 reflect.Type을 반환합니다. 변수가 nil이면 reflect.TypeOf()는 nil을 반환합니다. 반환된 Type에 .Kind()를 사용하면 타입 범주(int, string, struct 등)를 얻을 수 있습니다.

3

reflect.Type과 reflect.Value의 차이점은 무엇입니까?

답변

reflect.Type은 타입의 메타데이터(이름, kind, 메서드, 필드)를 나타내며 reflect.TypeOf()로 얻습니다. reflect.Value는 구체적인 값을 나타내며 reflect.ValueOf()로 읽거나 수정할 수 있습니다. 둘은 상호 보완적입니다. Type은 '무엇'을 설명하고 Value는 '데이터'를 담습니다.

4

reflection을 통해 변수의 값을 어떻게 수정합니까?

5

reflect.Kind란 무엇입니까?

+17 면접 질문

다음 면접을 위해 Go을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기