Go에서는 해당 유형의 인스턴스를 생성하지 않고도 변수의 유형 정보를 얻을 수 있습니다. . 이는 Reflect.TypeOf 함수를 사용하여 수행할 수 있습니다.
reflect.TypeOf 함수는 유형에 대한 포인터를 인수로 사용하고 Reflect.Type 값을 반환합니다. 유형에 대한 포인터는 * 연산자 뒤에 유형 이름을 사용하여 얻을 수 있습니다. 예:
<code class="go">t := reflect.TypeOf((*int)(nil))</code>
이 코드 줄은 int 유형에 대한 포인터를 생성하고 이를 변수 t에 할당합니다.
다른 유형에 대한 포인터인 유형에 대한 포인터인 경우, Reflect.Type 값의 Elem 메소드를 사용하여 기본 유형을 얻을 수 있습니다. 예:
<code class="go">t = reflect.TypeOf((*http.Request)(nil)).Elem()</code>
이 코드 줄은 http.Request 유형에 대한 포인터를 생성하고 이를 변수 t에 할당합니다. 그런 다음 Reflect.Type 값에 대해 Elem 메소드를 호출하여 기본 유형인 http.Request를 가져옵니다.
reflect.Type 값이 있으면 , 함수에 인수로 전달할 수 있습니다. 예를 들어 다음 함수는 Reflect.Type 값을 인수로 사용하고 유형 이름을 인쇄합니다.
<code class="go">func printType(t reflect.Type) { fmt.Println(t.Name()) }</code>
이 함수는 다음과 같이 사용할 수 있습니다.
<code class="go">t := reflect.TypeOf((*int)(nil)) printType(t)</code>
이것은 한 줄의 코드는 "int" 문자열을 인쇄합니다.
어떤 경우에는 Reflect.TypeOf를 사용하는 대신 유형에 대한 상수를 생성하는 것이 더 효율적일 수 있습니다. 예를 들어, 다음 코드는 int 유형에 대한 상수를 생성합니다.
<code class="go">const TypeInt = reflect.TypeOf((*int)(nil))</code>
이 상수는 Reflect.TypeOf 표현식 대신 사용할 수 있습니다.
<code class="go">printType(TypeInt)</code>
이 코드는 문자열 "int"를 인쇄합니다.
위 내용은 인스턴스를 만들지 않고 Go에서 변수의 유형 정보를 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!