いろいろ備忘録日記

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

Goメモ-442 (godotenvメモ)(02)

関連記事

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

概要

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

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

godotenvには、autoloadというパッケージがあり、これを暗黙インポートすると自動的に godotenv.Load() を呼び出した状態にしてくれます。

暗黙インポートするのは以下。

_ "github.com/joho/godotenv/autoload"

サンプル

package main

import (
    "os"

    // autoloadパッケージを暗黙インポートすると自動で .env を読み込んで展開してくれる
    //   "If you're even lazier than that, you can just take advantage of the autoload package which will read in .env on import"
    _ "github.com/joho/godotenv/autoload"
    "github.com/k0kubun/pp/v3"
)

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

func run() error {
    // godotenv.Load() を呼んでないが .env に設定されている環境変数は展開されている
    pp.Println(os.Getenv("HELLO"))
    return nil

    /*
      $ task
      task: [build] go build -o app .
      task: [run] echo -n "HELLO=WORLD" > ./.env
      task: [run] ./app
      "WORLD"
      task: [run] rm -f ./.env
   */
}

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

try-golang-extlib/examples/singleapp/godotenv/02.autoload at main · devlights/try-golang-extlib · GitHub

参考情報

pkg.go.dev

Goのおすすめ書籍


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

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