ホームページ > バックエンド開発 > Golang > Go で名前付き関数の引数をシミュレートするにはどうすればよいですか?

Go で名前付き関数の引数をシミュレートするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-26 13:00:14
オリジナル
307 人が閲覧しました

How Can I Simulate Named Function Arguments in Go?

フィールド名による関数の引数の受け渡し

Go では、関数呼び出しでは、引数を関数パラメーターと同じ順序でリストする必要があります。ただし、次のように引数を名前で明示的に指定することもできます:

MyFunction(name: "Bob", address: "New York", nick: "Builder", age: 30, value: 1000)
ログイン後にコピー

非名前付き引数はサポートされていません

残念ながら、Go は名前付き引数をサポートしていません機能用。 Go 仕様で述べられているように、すべての非可変引数パラメーターに対して予想される順序で値を指定する必要があります。

オプション 1: 構造体ラッパーを使用する

名前付きを模倣するには引数を使用すると、関数パラメータをラップする構造体を作成できます:

type Params struct {
    name, address, nick string
    age, value          int
}

func MyFunction(p Params) {
    // perform some operations using p.name, p.address, etc.
}

func main() {
    MyFunction(Params{
        name:    "Bob",
        address: "New York",
        nick:    "Builder",
        age:     30,
        value:   1000,
    })
}
ログイン後にコピー

Option 2: ヘルパー関数を使用する

元の関数を変更できない場合は、構造体パラメーターを受け取り、適切なフィールドを引数として元の関数を呼び出すヘルパー関数を作成します。

func MyFunction2(p Params) {
    MyFunction(p.name, p.address, p.nick, p.age, p.value)
}

func main() {
    MyFunction2(Params{
        name:    "Bob",
        address: "New York",
        nick:    "Builder",
        age:     30,
        value:   1000,
    })
}
ログイン後にコピー

以上がGo で名前付き関数の引数をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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