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 サイトの他の関連記事を参照してください。