Go에서는 인스턴스 없이 유형 설명자를 얻는 것이 가능합니다. Reflect.TypeOf() 함수를 활용하면 nil 값에 대한 포인터의 Type 표현에 액세스할 수 있습니다.
<code class="go">t := reflect.TypeOf((*int)(nil)).Elem() fmt.Println(t) // Output: int t = reflect.TypeOf((*http.Request)(nil)).Elem() fmt.Println(t) // Output: http.Request t = reflect.TypeOf((*os.File)(nil)).Elem() fmt.Println(t) // Output: os.File</code>
의 경우 편의상 전역 상수를 정의하여 다양한 유형을 나타내므로 Reflect.Type 변수를 생성할 필요가 없습니다.
<code class="go">type TypeDesc int const ( TypeInt TypeDesc = iota TypeHTTPRequest TypeOSFile )</code>
그런 다음 스위치 문에서 이러한 상수를 사용하여 다음을 수행할 수 있습니다. 값의 유형 결정:
<code class="go">func printType(t TypeDesc) { switch t { case TypeInt: fmt.Println("Type: int") case TypeHTTPRequest: fmt.Println("Type: http.Request") case TypeOSFile: fmt.Println("Type: os.File") } }</code>
유형 표현에 상수를 사용하면 여러 가지 장점이 있습니다.
위 내용은 인스턴스 없이 Go에서 값 유형을 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!