Apabila bekerja dengan jenis antara muka serba boleh Go{}, adalah penting untuk menavigasi fleksibiliti yang wujud. Untuk menggunakan antara muka{} dengan berkesan, kami menyelidiki soalan menarik anda:
Taip Tukar kepada Penyelamat:
switch v := w.(type) { case int: fmt.Println("Type: integer") case string: fmt.Println("Type: string") }
Menggunakan TypeName:
fmt.Println(reflect.TypeOf(w).Name())
Taip Penegasan dengan TypeName:
typeName := reflect.TypeOf(w).Name() if typeName == "int" { value := w.(int) } else if typeName == "string" { value := w.(string) }
Dalam contoh khusus anda, anda boleh mendapatkan jenis "sebenar" daripada w menggunakan suis jenis:
switch w := weirdFunc(5).(type) { case int: fmt.Println("w is an integer") case string: fmt.Println("w is a string") }
Sebagai alternatif, anda boleh memanfaatkan pakej reflect untuk mendapatkan semula nama jenis itu sendiri:
typeName := reflect.TypeOf(w).Name() fmt.Println("w's type name:", typeName)
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Jenis Dasar `antara muka{}` Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!