Mengakses Medan Antara Muka dalam Go
Apabila bekerja dengan antara muka dalam Go, adalah penting untuk memahami bahawa anda tidak boleh mengakses medan jenis asas secara langsung melalui antara muka. Pembolehubah antara muka boleh menyimpan sebarang nilai yang mematuhi antara muka, tetapi ia tidak memberikan akses terus kepada medan nilai.
Dalam coretan kod yang disediakan, fungsi SearchItemsByUser mengembalikan nilai antara muka{}. Untuk mengakses medan data, seperti Params, anda perlu menggunakan penegasan jenis untuk mengakses jenis struct tertentu di belakang antara muka.
Untuk melakukan ini, anda boleh mengubah suai kod seperti berikut:
package search type results struct { Hits hits NbHits int NbPages int HitsPerPage int ProcessingTimeMS int Query string Params string } func SearchItemsByUser(r *http.Request) results { var Result results er := json.Unmarshal(body, &Result) if er != nil { fmt.Println("error:", er) } return Result }
Kini, anda boleh menggunakan nilai yang dikembalikan secara langsung:
func test(w http.ResponseWriter, r *http.Request) { result := search.SearchItemsByUser(r) fmt.Fprintf(w, "%s", result.Params) }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Medan Struktur Melalui Antara Muka dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!