[解決済み] env varが空の場合、どのようにデフォルト値を割り当てるのですか?
2023-04-22 13:52:05
質問
Go で環境変数が設定されていない場合、どのようにしてデフォルト値を割り当てるのですか?
Pythonでは、次のようにすることができました。
mongo_password = os.getenv('MONGO_PASS', 'pass')
ここで
pass
はデフォルト値で
MONGO_PASS
env var が設定されていない場合のデフォルト値です。
を元にしたif文を試してみました。
os.Getenv
が空であることに基づいてif文を試してみましたが、if文の中での変数割り当ての範囲により、うまくいかないようです。また、複数のenv varをチェックしているので、if文の中でこの情報を元に動作させることはできません。
どのように解決するのですか?
デフォルト値にフォールバックするビルトインはありません。 そのため、昔ながらの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
}
関連
-
[解決済み] Goでint値をstringに変換する方法は?
-
[解決済み] ログをファイルに書き出す方法
-
[解決済み] Goでスライスを逆に反復処理する方法はありますか?
-
[解決済み] 構造体の値をマップの値として設定すると、"cannot assign" エラーが発生するのはなぜですか?重複
-
[解決済み] Goエラー処理テクニック【終了しました
-
[解決済み] ローカルファイルからio.Readerを作成する
-
[解決済み] Goでマップをクリアするには?
-
[解決済み] テキストファイルの読み方を教えてください。重複
-
[解決済み] 複数のゴルーチンが1つのチャンネルをリッスンする
-
[解決済み] 文字列がint型かどうかチェックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] GoのToString()関数
-
[解決済み] os.Exit()とpanic()はいつ使うのか?
-
[解決済み] golangでは、マップから値のスライスを取得する良い方法はありますか?
-
[解決済み] sync.WaitGroupの例は正しいですか?
-
[解決済み] Goのargv[0]に相当するものは何ですか?
-
[解決済み] ゴルーチンからの戻り値をキャッチする
-
[解決済み] ...interface{}の意味 (ドット・ドット・ドット・インターフェース)
-
[解決済み] go ウェブサーバーを使って静的な html ファイルを提供するにはどうすればよいですか?
-
[解決済み] テキストファイルの読み方を教えてください。重複
-
[解決済み] 構造体のプロパティに名前でアクセスする