ホームページ >バックエンド開発 >Golang >Go で関数パラメータのデフォルト値を設定するにはどうすればよいですか?

Go で関数パラメータのデフォルト値を設定するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-30 12:45:14300ブラウズ

How Can I Set Default Values for Function Parameters in Go?

Go 関数でのデフォルト値の設定

Go は関数パラメータにデフォルト値を指定するネイティブな方法を提供しませんが、いくつかの代替アプローチを使用できます。この機能を実現します。

オプション 1: 呼び出し元制御デフォルト

このアプローチでは、呼び出し元はパラメータが空かゼロかをチェックすることでデフォルト値を明示的に指定できます。例:

func SaySomething(i string) string {
  if i == "" {
    i = "Hello"
  }

  return i
}

オプション 2: オプションのパラメーター

パラメーターをパラメーター リストの最後に置くことで、パラメーターをオプションとして定義できます。この場合、引数が指定されていない場合、関数はデフォルト値を使用します。

func Concat(a string, b int) string {
  if b == 0 {
    b = 5
  }

  return a + strconv.Itoa(b)
}

オプション 3: 構成構造体

デフォルト値を使用して構造体を作成します。関数のパラメータ。これにより、デフォルトを設定するための宣言的な方法が提供されます。

type Config struct {
  Name string `default:"John Doe"`
  Age  int    `default:"0"`
}

func Greet(c Config) string {
  return fmt.Sprintf("Hello, %s! You are %d years old.", c.Name, c.Age)
}

オプション 4: 可変引数

このアプローチにより、受信した引数を解析し、それに応じてデフォルト値を設定できます。

func ProcessArgs(args ...interface{}) {
  a := "default-a"
  b := 5

  for _, arg := range args {
    switch v := arg.(type) {
      case string:
        a = v
      case int:
        b = v
    }
  }

  // Use a and b
}

以上がGo で関数パラメータのデフォルト値を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。