Go で環境変数が設定されていない場合、デフォルト値をどのように割り当てますか?
Python では、env var が設定されていない場合のデフォルト値はmongo_password = os.getenv('MONGO_PASS', 'pass')
どこになるかを調べることができます。pass
MONGO_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
}