いろいろ備忘録日記

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

Goメモ-390 (環境変数周りのメモ-5)(os.Expand, マッピング関数に基づいて文字列の${var}または$varを置換)

関連記事

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

概要

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

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

今回はos.Expand 。マッピング関数に基づいて文字列の${var}または$varを置き換えます。

マッピング関数の書式は func(string) string となっています。

サンプル

package osop

import (
    "os"

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

// Expand は、os.Expand() のサンプルです。
//
// Expandは、マッピング関数に基づいて文字列の${var}または$varを置き換えます。
// マッピング関数の書式は
//
// func(string) string
//
// となっています。
// os.ExpandEnv() は、以下と同じことになります。
//
// os.Expand(s, os.Getenv)
//
// # REFERENCES
//
//   - https://pkg.go.dev/os@go1.22.0#Expand
func Expand() error {
    var (
        fn = func(s string) string {
            return "helloworld"
        }
        v = os.Expand("${HI}", fn)
    )

    output.Stdoutl("[HI]", v)
    output.Stdoutl("[HOME]", os.Expand("${HOME}", os.Getenv))

    return nil

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

      ENTER EXAMPLE NAME: osop_expand

      [Name] "osop_expand"
      [HI]                 helloworld
      [HOME]               /home/gitpod


      [Elapsed] 11.04µs
   */

}

参考情報

Goのおすすめ書籍


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

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