Adakah Argumen Tanpa Nama Suatu Perkara yang Diperjalankan?
Dalam Go, penggunaan argumen tanpa nama dalam definisi fungsi pada mulanya boleh menimbulkan persoalan, terutamanya apabila menemui kod yang mempunyai penunjuk kepada jenis yang tidak dinamakan sebagai argumen. Ini kerana argumen fungsi tidak mempunyai nama, menjadikannya nampaknya mustahil untuk dirujuk dalam fungsi.
Tujuan Argumen Tanpa Nama
Parameter yang tidak dinamakan dalam Go bukanlah perkara biasa . Menurut spesifikasi pengisytiharan Parameter, IdentifierList (nama atau nama pengecam) adalah pilihan, bermakna ia tidak wajib untuk parameter fungsi atau kaedah. Jenis ialah satu-satunya elemen penting.
Keperluan untuk parameter yang tidak dinamakan timbul apabila identiti parameter tidak berkaitan dengan kelakuan fungsi. Susunan dan jenis parameter adalah perkara yang penting, bukan nama mereka.
Mengapa Menggunakan Argumen Tanpa Nama?
Terdapat beberapa sebab mengapa seseorang mungkin memilih untuk menggunakan argumen tanpa nama :
Contoh:
Pertimbangkan antara muka dipanggil MyWriter yang mentakrifkan kaedah Tulis:
type MyWriter interface { Write(p []byte) error }
Untuk menyediakan pelaksanaan mudah antara muka ini yang membuang data, anda boleh mencipta DiscardWriter:
type DiscardWriter struct{} func (DiscardWriter) Write([]byte) error { return nil }
Dalam contoh ini, kedua-duanya penerima dan hujah tidak dinamakan kerana ia tidak digunakan.
Lain-lain Pertimbangan:
parameter tidak dinamakan. Anda mesti menamakan semua parameter jika anda memilih untuk menamakan mana-mana. Anda boleh menggunakan pengecam kosong dalam situasi seperti ini:
// Responds with "Hello" to all HTTP requests http.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) { io.WriteString(w, "Hello") })
Sumber Tambahan:
Atas ialah kandungan terperinci Adakah Go Menyokong Argumen Fungsi Tanpa Nama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!