Rumah >pembangunan bahagian belakang >Golang >Mengapa Menggunakan Pengecam Kosong dalam Penegasan Antara Muka Masa Kompilasi Go?
Tujuan Pengecam Kosong dalam Tugasan Pembolehubah
Apabila menghadapi tugasan pembolehubah seperti berikut, anda mungkin tertanya-tanya mengapa pengecam kosong digunakan:
var _ PropertyLoadSaver = (*Doubler)(nil)
Pengecam kosong ini mempunyai tujuan penting dalam melaksanakan masa penyusunan penegasan, memastikan bahawa jenis tertentu memenuhi keperluan antara muka.
Dalam contoh ini, jenis *Doubler ditandakan terhadap antara muka PropertyLoadSaver. Jika *Doubler tidak melaksanakan semua kaedah yang diperlukan yang ditakrifkan dalam antara muka, kompilasi akan gagal dengan ralat yang menyatakan bahawa *Doubler kehilangan kaedah tertentu.
Kod memberikan nilai nol yang tidak ditaip kepada pembolehubah jenis PropertyLoadSaver menggunakan (*Doubler)(nil). Tugasan ini hanya sah jika *Doubler melaksanakan antara muka PropertyLoadSaver. Jika tidak, kompilasi akan berakhir dengan mesej ralat yang serupa dengan:
prog.go:21: cannot use (*Doubler)(nil) (type *Doubler) as type PropertyLoadSaver in assignment: *Doubler does not implement PropertyLoadSaver (missing Save method)
Pengecam kosong _ digunakan kerana pembolehubah tidak perlu dirujuk di tempat lain dalam pakej. Pendekatan alternatif menggunakan pengecam bukan kosong juga boleh dilakukan:
var assertStarDoublerIsPropertyLoadSaver PropertyLoadSaver = (*Doubler)(nil)
Atas ialah kandungan terperinci Mengapa Menggunakan Pengecam Kosong dalam Penegasan Antara Muka Masa Kompilasi Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!