Memahami "Tidak Cukup Argumen dalam Ungkapan Seruan Kaedah" dalam Go
Dalam Go, mesej ralat "tidak cukup argumen dalam panggilan ke ungkapan kaedah" boleh ditemui apabila cuba memanggil kaedah dengan salah. Kaedah ialah fungsi yang dikaitkan dengan jenis tertentu dan ia mesti dipanggil menggunakan sintaks yang sesuai.
Pertimbangkan coretan kod berikut:
package main type Schema struct { } type JSONParser struct { } func (jsonParser JSONParser) Parse(toParse []byte) ([]Schema, int) { var schema []Schema // whatever parsing logic return schema, 0 } func main() { var in []byte actual, err2 := JSONParser.Parse(in) }
Apabila melaksanakan kod ini, anda mungkin menghadapi ralat "tidak cukup argumen dalam panggilan ke kaedah ungkapan". Ini kerana JSONParser.Parse ialah kaedah contoh, bermakna ia mesti dipanggil pada tika tertentu jenis JSONParser.
Untuk menyelesaikan ralat ini, anda mesti mencipta tika jenis JSONParser terlebih dahulu. Ini boleh dilakukan dengan mengisytiharkan pembolehubah jenis dan memberikannya nilai yang sesuai. Sebagai contoh, anda boleh menulis semula fungsi utama seperti berikut:
func main() { var in []byte jp := JSONParser{} actual, err2 := jp.Parse(in) }
Sekarang, apabila memanggil kaedah Parse, anda menggunakan sintaks yang betul kerana anda menyediakan contoh jenis JSONParser (jp) untuk dipanggil kaedah dihidupkan.
Ingat, apabila memanggil kaedah contoh, adalah penting untuk mencipta tika jenis itu dahulu. Jika anda cuba memanggil kaedah contoh tanpa tika, anda akan menghadapi ralat "argumen tidak mencukupi dalam ungkapan panggilan ke kaedah".
Atas ialah kandungan terperinci Mengapa saya mendapat 'hujah tidak mencukupi dalam ungkapan panggilan ke kaedah' dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!