Mengapa Saya Mendapat Ralat 'Tidak Cukup Hujah dalam Ungkapan Seruan Kaedah' dalam Go?

Patricia Arquette
Lepaskan: 2024-11-07 20:17:03
asal
631 orang telah melayarinya

Why Am I Getting the

Cara Mengelakkan Ralat "Perdebatan Tidak Cukup dalam Ungkapan Seruan Kaedah" dalam Go

Semasa bekerja dengan Go, anda mungkin menghadapi masalah ralat berikut:

prog.go:18: not enough arguments in call to method expression JSONParser.Parse
Salin selepas log masuk

Ralat ini boleh disebabkan oleh percubaan memanggil kaedah contoh seolah-olah ia kaedah pada skop pakej. Dalam erti kata lain, anda perlu menyatakan secara eksplisit contoh yang anda ingin panggil kaedah tersebut.

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) // This will result in the error
}
Salin selepas log masuk

Untuk membetulkan ralat, anda perlu membuat contoh jenis JSONParser dan panggil kaedah Parse pada contoh itu. Begini cara anda boleh melakukannya:

func main() {
    var in []byte
    jp := JSONParser{} // Create an instance of JSONParser
    actual, err2 := jp.Parse(in) // Call the Parse method on the instance
}
Salin selepas log masuk

Sebagai alternatif, anda boleh mentakrifkan kaedah Parse anda sebagai fungsi tanpa penerima dan memanggilnya terus:

func Parse(toParse []byte) ([]Schema, int) {
    var schema []Schema
    // whatever parsing logic
    return schema, 0
}

func main() {
    var in []byte
    actual, err2 := Parse(in) // Call the Parse function directly
}
Salin selepas log masuk

Dengan menyatakan secara eksplisit kejadian atau menggunakan fungsi tanpa penerima, anda boleh mengelakkan ralat "argumen tidak mencukupi dalam ungkapan panggilan ke kaedah" dan kaedah contoh panggilan dengan betul dalam Go.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Tidak Cukup Hujah dalam Ungkapan Seruan 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan