いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-387 (環境変数周りのメモ-2)(os.GetEnv, 指定した環境変数の値を取得)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。

環境変数を扱うときは結構あるのですが、いつも godotenv とかで済ませているので、標準ライブラリを使ったやり方をよく忘れてしまっているので、ここに自分用にメモを残しておくことにしました。どんなプログラム言語でも標準ライブラリをしっかりと理解して扱えることが大事。

今回はos.GetEnv 。指定した環境変数の値を取得です。空の場合の値に意味を持っている場合は、os.LookupEnv の方を使いましょう。

サンプル

package osop

import (
    "os"

    "github.com/devlights/gomy/output"
)

// GetEnv は、os.GetEnv() のサンプルです。
//
// Getenvは、キーで指定された環境変数の値を取得します。
// 値が返されるが、変数が存在しない場合は空が返ります。
// 空の値と未設定の値を区別するには、LookupEnvを使用します。
//
// 戻り値は string で、error は返却されない。
//
// # REFERENCES
//
//   - https://pkg.go.dev/os@go1.22.0#Getenv
func GetEnv() error {
    const (
        ENV1 = "HOSTNAME"
        ENV2 = "SONZAISHINAIKEY"
    )

    var (
        env1 = os.Getenv(ENV1)
        env2 = os.Getenv(ENV2)
    )

    //
    // env2 の方は存在しない環境変数のため空が返る。
    // この「空」の値が、「存在しない環境変数」なのか「存在するが値が空」なのかを
    // 見極める必要がある場合は、os.LookupEnv() の方を使う。
    //
    output.Stdoutl("[env1]", env1)
    output.Stdoutl("[env2]", env2)

    return nil

    /*
      $ task
      task: [build] go build .
      task: [run] ./try-golang -onetime

      ENTER EXAMPLE NAME: osop_getenv

      [Name] "osop_getenv"
      [env1]               devlights-trygolang-q7kq6quld1n
      [env2]


      [Elapsed] 43.03µs
   */

}

参考情報

Goのおすすめ書籍


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。