いろいろ備忘録日記

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

Goメモ-388 (環境変数周りのメモ-3)(os.LookupEnv, 指定された環境変数の値を取得, 存在判定)

関連記事

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

概要

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

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

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

サンプル

package osop

import (
    "os"

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

// LookupEnv は、os.LookupEnv() のサンプルです。
//
// LookupEnv は、キーで指定された環境変数の値を取得します。
// その変数が環境に存在する場合、その値 (空でもよい) が返され、ブール値は true になります。
// そうでない場合は、返される値は空で、ブール値は false になります。
//
// # REFERENCES
//
//   - https://pkg.go.dev/os@go1.22.0#LookupEnv
func LookupEnv() error {
    const (
        ENV1 = "HOSTNAME"
        ENV2 = "SONZAISHINAIKEY"
    )

    var (
        v  string
        ok bool
        p  = func(prefix string, v string, ok bool) {
            if ok {
                output.Stdoutl(prefix, v)
            } else {
                output.Stdoutl(prefix, "not found")
            }
        }
    )

    v, ok = os.LookupEnv(ENV1)
    p("[ENV1]", v, ok)

    v, ok = os.LookupEnv(ENV2)
    p("[ENV2]", v, ok)

    return nil

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

      ENTER EXAMPLE NAME: osop_lookupenv

      [Name] "osop_lookupenv"
      [ENV1]               devlights-trygolang-q7kq6quld1n
      [ENV2]               not found


      [Elapsed] 19.3µs
   */

}

参考情報

Goのおすすめ書籍


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

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