Memulakan Struktur Terbenam dalam Go
Apabila bekerja dengan struct terbenam dalam Go, senario biasa melibatkan memulakan struct tanpa nama dalaman. Artikel ini menangani senario sedemikian, memberikan pemahaman yang jelas tentang cara untuk mencapai permulaan menggunakan dua pendekatan.
Pertimbangkan struct terbenam MyRequest berikut:
type MyRequest struct { http.Request PathParams map[string]string }
Untuk memulakan MyRequest, kita perlu menetapkan nilai-nilai untuk struct http.Request tertanamnya. Begini cara ia boleh dilakukan:
func New(origRequest *http.Request, pathParams map[string]string) *MyRequest { req := new(MyRequest) req.PathParams = pathParams req.Request = origRequest return req }
Dalam pendekatan ini, kami mula-mula mencipta objek MyRequest baharu dan menetapkannya kepada req. Kami kemudian menetapkan medan PathParams dengan sewajarnya. Selepas itu, kami mengakses dan menetapkan struct http.Request tertanam dengan merujuk req.Request.
Sebagai alternatif, kami juga boleh memulakan struct terbenam menggunakan sintaks berikut:
req := &MyRequest{ PathParams: pathParams Request: origRequest }
Di sini, kami buat struct tanpa nama dengan medan yang diperlukan. Adalah penting untuk memberi awalan nama struct terbenam dengan '&' untuk permulaan yang betul. Ini menghasilkan objek MyRequest dengan nilai yang dikehendaki.
Kedua-dua pendekatan berkesan memulakan struct http.Request tertanam dalam MyRequest, membolehkan anda menyesuaikan dan menggunakannya mengikut keperluan. Untuk rujukan lanjut, rujuk spesifikasi Go pada medan yang dinamakan untuk struktur terbenam.
Atas ialah kandungan terperinci Cara Memulakan Struktur Terbenam dalam Go: Panduan Dua Pendekatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!