env var が空の場合にデフォルト値を割り当てるにはどうすればいいですか? 質問する

env var が空の場合にデフォルト値を割り当てるにはどうすればいいですか? 質問する

Go で環境変数が設定されていない場合、デフォルト値をどのように割り当てますか?

Python では、env var が設定されていない場合のデフォルト値はmongo_password = os.getenv('MONGO_PASS', 'pass')どこになるかを調べることができます。passMONGO_PASS

空であることに基づいて if ステートメントを試しましたos.Getenvが、if ステートメント内の変数割り当てのスコープが原因で機能しないようです。また、複数の env var をチェックしているため、if ステートメント内でこの情報に基づいて操作することはできません。

ベストアンサー1

デフォルト値にフォールバックする組み込み機能はないため、昔ながらの if-else を実行する必要があります。

ただし、ヘルパー関数を作成して簡単に実行することもできます。

func getenv(key, fallback string) string {
    value := os.Getenv(key)
    if len(value) == 0 {
        return fallback
    }
    return value
}

注意してくださいマイケル・ハウゼンブラスコメントで指摘されているように、環境変数の値が実際に空の場合は、代わりにフォールバック値が取得されることに注意してください。

さらに良いのは@ŁukaszWojciechowski指摘した、使用os.LookupEnv:

func getEnv(key, fallback string) string {
    if value, ok := os.LookupEnv(key); ok {
        return value
    }
    return fallback
}

おすすめ記事