go 언어에서는 리플렉션을 통해 유형 정보를 얻을 수 있으며, 리플렉트 패키지의 TypeOf() 함수만 호출하면 됩니다. 방법: 1. "reflect.TypeOf()" 함수를 사용하여 지정된 변수의 유형 객체를 얻습니다. 2. Name() 및 Kind()를 사용하여 유형 객체의 유형 정보를 얻습니다. .Name()" 및 "유형 개체 .Kind()".
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
Go 언어에서는 리플렉션을 통해 유형 정보를 얻을 수 있습니다.
Go 언어에서는 Reflect.TypeOf 함수를 호출하여 인터페이스가 아닌 모든 유형의 값에서 Reflect.Type 값을 생성할 수 있습니다. Reflect.Type 값은 이 비인터페이스 값의 유형을 나타냅니다. 이 값을 통해 우리는 이 비인터페이스 유형에 대한 많은 정보를 얻을 수 있습니다. 물론 인터페이스 값을 Reflect.TypeOf 함수 호출에 전달할 수도 있지만 이 호출은 인터페이스 값의 동적 유형을 나타내는 Reflect.Type 값을 반환합니다.
사실, Reflect.TypeOf 함수의 유일한 매개변수 유형은 인터페이스{}이며, Reflect.TypeOf 함수는 항상 이 고유한 인터페이스 매개변수 값의 동적 유형을 나타내는 Reflect.Type 값을 반환합니다.
그렇다면 특정 인터페이스 유형을 나타내는 Reflect.Type 값을 얻는 방법은 무엇일까요? 우리는 아래에 소개될 몇 가지 간접적인 방법을 통해 이 목표를 달성해야 합니다.
Type Reflect.Type은 여러 메소드를 지정하는 인터페이스 유형입니다. 이러한 방법을 통해 Reflect.Type 값으로 표현되는 Go 타입의 다양한 정보를 관찰할 수 있습니다. 이러한 방법 중 일부는 모든 종류의 유형에 적용되고 일부는 하나 또는 몇 가지 유형에만 적용됩니다. 부적절한 Reflect.Type 소유자 값으로 메서드를 호출하면 런타임 시 패닉이 발생합니다.
reflect.TypeOf() 함수를 사용하여 모든 값의 유형 객체(reflect.Type)를 얻으세요. 프로그램은 유형 객체를 통해 모든 값의 유형 정보에 액세스할 수 있습니다. 유형 개체를 얻는 과정을 이해하기 위해 예를 사용하겠습니다.
package main import ( "fmt" "reflect" ) func main() { var a int typeOfA := reflect.TypeOf(a) fmt.Println(typeOfA.Name(), typeOfA.Kind()) }
코드 출력은 다음과 같습니다.
코드 설명은 다음과 같습니다.
라인 10은 int 유형의 변수를 정의합니다.
12행에서는 변수 a의 유형 객체 typeOfA가 Reflect.TypeOf()를 통해 얻어지며 유형은 Reflect.Type()입니다.
14행에서는 typeOfA 유형 객체의 멤버 함수를 통해 typeOfA 변수의 유형 이름을 각각 int로 얻을 수 있으며 유형(Kind)은 int입니다.
지식 확장: 반사의 유형 및 종류
반사를 사용할 때 먼저 유형과 종류의 차이점을 이해해야 합니다. 프로그래밍에서는 가장 일반적으로 사용되는 타입이 타입이지만, 반영적으로 매우 다양한 타입을 구분해야 할 때에는 종류(Kind)를 사용합니다. 예를 들어, 포인터를 타입별로 통일적으로 판단해야 하는 경우에는 종류(Kind) 정보를 활용하는 것이 더 편리합니다.
위 내용은 Go 언어로 유형 정보를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!