4

Goプログラミング言語で引数を「オプション」として宣言する方法はありますか?

私が言っていることの例:

func doSomething(foo string, bar int) bool {
    //...
}

パラメータをオプションにし、何も渡されない場合はbarデフォルトにする必要があります。0

doSomething("foo")

と同じになります

doSomething("foo",0)

関数に関する公式ドキュメントでは、この問題について何も見つかりません。

4

2 に答える 2

2

可変個引数関数で偽造することはできますが、Goが関数へのオプションの引数をサポートしているとは思いません。Cのアプローチは、それを望まない場合、言語がカリー化をサポートしているふりをすることです。

func doSomethingNormally(foo string) bool {
    doSomething(foo, 0)
}
于 2011-12-30T19:01:11.393 に答える
0

それを偽造する別の方法は、構造体を渡すことです。

type dsArgs struct {
    foo string
    bar int
}

func doSomething(fb dsArgs) bool {
    //...
}

それで

doSomething(dsArgs{foo: "foo"})

と同じです

doSomething(dsArgs{foo: "foo", bar: 0})
于 2012-03-05T04:33:14.940 に答える