Tujuan Pengecam Kosong dalam Pembolehubah Tugasan
Dalam pengisytiharan berubah seperti var _ PropertyLoadSaver = (*Doubler)(nil), pengecam kosong berfungsi untuk tujuan tertentu. Konstruk ini ialah penegasan masa kompilasi bahawa jenis *Doubler melaksanakan antara muka PropertyLoadSaver.
Dalam Go, jenis melaksanakan antara muka apabila ia menawarkan set kaedah yang melebihi atau sepadan dengan set kaedah antara muka. Jika jenis *Doubler tidak memenuhi kriteria ini, pengkompil akan membuang ralat serupa dengan:
prog.go:21: cannot use (*Doubler)(nil) (type *Doubler) as type PropertyLoadSaver in assignment: *Doubler does not implement PropertyLoadSaver (missing Save method)
Teknik pengecam kosong ini melibatkan pengisytiharan pembolehubah yang tidak dinamakan jenis PropertyLoadSaver, kemudian memberikannya nilai nol taip Doubler melalui ungkapan (*Doubler)(nil). Tugasan ini hanya sah jika Doubler melaksanakan antara muka PropertyLoadSaver.
Pengecam kosong menggariskan fakta bahawa pembolehubah ini tidak akan dirujuk di tempat lain dalam pakej. Begitu juga, baris berikut mencapai hasil yang sama tetapi dengan pengecam bukan kosong:
var assertStarDoublerIsPropertyLoadSaver PropertyLoadSaver = (*Doubler)(nil)
Atas ialah kandungan terperinci Apakah Tujuan Pengecam Kosong dalam Penegasan Antara Muka Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!