ホームページ > バックエンド開発 > Golang > Go で「メソッド式の呼び出しに十分な引数がありません」というメッセージが表示されるのはなぜですか?

Go で「メソッド式の呼び出しに十分な引数がありません」というメッセージが表示されるのはなぜですか?

DDD
リリース: 2024-11-08 16:46:02
オリジナル
1046 人が閲覧しました

Why am I getting

Go の「メソッド式の呼び出しに引数が足りません」を理解する

Go では、「呼び出しに引数が足りません」というエラー メッセージが表示されるメソッド式」は、メソッドを誤って呼び出そうとしたときに発生することがあります。メソッドは特定の型に関連付けられた関数であり、適切な構文を使用して呼び出す必要があります。

次のコード スニペットを検討してください。

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)
}
ログイン後にコピー

このコードを実行すると、次のような問題が発生する可能性があります。 「メソッド式の呼び出しに十分な引数がありません」エラー。これは、JSONParser.Parse がインスタンス メソッドであるためです。つまり、JSONParser 型の特定のインスタンスで呼び出す必要があります。

このエラーを解決するには、まず JSONParser 型のインスタンスを作成する必要があります。これは、その型の変数を宣言し、それに適切な値を割り当てることで実行できます。たとえば、main 関数を次のように書き換えることができます。

func main() {
    var in []byte
    jp := JSONParser{}
    actual, err2 := jp.Parse(in)
}
ログイン後にコピー

ここで、Parse メソッドを呼び出すときは、呼び出す JSONParser 型 (jp) のインスタンスを提供しているため、正しい構文を使用しています。

インスタンス メソッドを呼び出すときは、最初にその型のインスタンスを作成することが重要であることに注意してください。インスタンスなしでインスタンス メソッドを呼び出そうとすると、「メソッド式の呼び出しに十分な引数がありません」というエラーが発生します。

以上がGo で「メソッド式の呼び出しに十分な引数がありません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート