いろいろ備忘録日記

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

Goメモ-444 (godotenvメモ)(04)

関連記事

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

概要

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

godotenv をたまに使うのですが、良く使い方忘れるのでついでにここにメモメモ。。

普通に godotenv.Load() を使うと、自動的に環境変数として設定してくれるのですが、そうではなく値だけを読み取って欲しいときは godotenv.Read() を利用します。

サンプル

package main

import (
    "os"

    "github.com/joho/godotenv"
    "github.com/k0kubun/pp/v3"
)

func main() {
    if err := run(); err != nil {
        pp.Fatal(err)
    }
}

func run() error {
    var (
        myEnv map[string]string
        err   error
    )

    // 環境変数を弄られたくない場合は、godotenv.Read()で内容を取得できる
    myEnv, err = godotenv.Read()
    if err != nil {
        return err
    }

    pp.Println(myEnv["HELLO"])
    if _, ok := os.LookupEnv("HELLO"); !ok {
        pp.Println("環境変数側にHELLOは存在しない")
    }

    return nil

    /*
       $ task
       task: [build] go build -o app .
       task: [run] echo -n "HELLO=WORLD" > ./.env
       task: [run] ./app
       "WORLD"
       "環境変数側にHELLOは存在しない"
       task: [run] rm -f ./.env
   */
}

サンプルは以下にアップしてあります。

try-golang-extlib/examples/singleapp/godotenv/04.read at main · devlights/try-golang-extlib · GitHub

参考情報

pkg.go.dev

Goのおすすめ書籍


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

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