Go メソッドでのデフォルト値の指定
Go では、メソッドでパラメータのデフォルト値を直接指定することはできません。ただし、同様の効果を達成するための回避策がいくつかあります。
オプション 1: 明示的な初期化
呼び出し元がオプションのパラメーターの値を指定しない場合、メソッド内で明示的にデフォルト値に初期化する:
func SaySomething(i string) string { if i == "" { i = "Hello" } return i }
オプション2: 末尾のオプションのパラメータ
もう 1 つのアプローチは、パラメータ リストの最後でオプションのパラメータを宣言することです。これにより、呼び出し元が値を選択的に提供できるようになります。
func SaySomething(i string, optionalValue bool) string { if optionalValue { i += " with some option" } return i }
オプション 3: デフォルト値へのポインター
にポインターを渡しますデフォルト値を含む変数。必要に応じてメソッドで変数を変更できるようにします。
func SaySomething(i *string) string { if *i == "" { *i = "Hello" } return *i }
オプション 4: Config Struct
パラメータ名をマップする構成構造体を作成します。デフォルト値を指定し、メソッドの引数として渡します:
type Config struct { Message string } func SaySomething(config *Config) string { if config.Message == "" { config.Message = "Hello" } return config.Message }
Option 5: 可変個引数
可変個引数を使用して、特定の引数のデフォルト値を指定して、任意の数の値を渡します:
func SaySomething(args ...string) string { i := "Hello" if len(args) > 0 { i = args[0] } return i }
Go はデフォルト値を直接指定することをサポートしていません。これらの回避策は、メソッド パラメーターを使用して、デフォルトの動作を実装するための柔軟なオプションを提供します。
以上がGo メソッドでデフォルトのパラメータ値を効果的に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。