Adalah mungkin dalam Go untuk mendapatkan deskriptor Type tanpa instance. Dengan menggunakan fungsi reflect.TypeOf(), anda boleh mengakses perwakilan Jenis penuding kepada nilai sifar.
<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>
Untuk kemudahan, anda boleh menentukan pemalar global untuk mewakili jenis yang berbeza, menghapuskan keperluan untuk membuat refleksi. Jenis pembolehubah:
<code class="go">type TypeDesc int const ( TypeInt TypeDesc = iota TypeHTTPRequest TypeOSFile )</code>
Anda kemudian boleh menggunakan pemalar ini dalam penyataan suis untuk tentukan jenis nilai:
<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>
Menggunakan pemalar untuk perwakilan jenis menawarkan beberapa kelebihan:
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Jenis Nilai dalam Go Without an Instance?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!