Go では関数の引数を名前なしのままにすることができますが、これは最初は混乱するように思えるかもしれません。ただし、この機能にはいくつかの目的があり、明確な構文規則があります。
Go 仕様によれば、ParameterDecl (パラメータ宣言) は次のとおりです。
ParameterDecl = [ IdentifierList ] [ "..." ] Type .
>IdentifierList (識別子名) はオプションであり、タイプのみであることを示しますは必須です。
名前のない引数を使用する理由
名前のない引数は通常、次のようなシナリオで使用されます。
構文規則
名前付きパラメータと名前なしパラメータの混合は許可されません。一部のパラメーターに名前を付ける場合は、すべてに名前を付ける必要があります。あるいは、空白の識別子 (_) を使用して、パラメータを参照すべきでないことを示すこともできます。
例
MyWriter インターフェイスを考えてみましょう。 :
type MyWriter interface { Write(p []byte) error }
データを破棄するこのインターフェイスの実装は、次のように記述できます。
type DiscardWriter struct{} func (DiscardWriter) Write([]byte) error { return nil }
DiscardWriter 型には、Write メソッドに渡される引数を使用しないため、名前のないパラメーターがあります。
結論として、名前のない関数の引数は、存在するが使用されていないパラメーターを処理するときに、柔軟性と明確さを提供します。これらはインターフェイスの実装を容易にし、未使用のパラメータを文書化し、下位互換性を損なうことなく将来の拡張を可能にします。
以上がGo で名前のない関数の引数を使用する場合とその理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。