Rumah > pembangunan bahagian belakang > Golang > Mengapa saya mendapat 'hujah tidak mencukupi dalam ungkapan panggilan ke kaedah' dalam Go?

Mengapa saya mendapat 'hujah tidak mencukupi dalam ungkapan panggilan ke kaedah' dalam Go?

DDD
Lepaskan: 2024-11-08 16:46:02
asal
1045 orang telah melayarinya

Why am I getting

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)
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan