🥳

GOで環境変数を読み込む方法

2023/01/24に公開

Go言語で、環境変数を読み込む方法をちょっと気になったので、学んでみました。
今回はyamlファイルを読み込んでみようと思います。

環境

・mac book pro(M2)
・go(version: 1.19.5)

サンプルコード

local.yml

name: "deel"
pass: "pass"
age: 23

main.go

package main

import (
	"log"
	"os"

	"gopkg.in/yaml.v2"
)

type User struct {
	Name string `yaml:"name"`
	Pass string `yaml:"pass"`
	// uintは整数型
	Age uint `yaml:"age"`
}

func main() {
        // 構造体の初期化
	user := User{}
	// ファイルをbyteで読み込む
	b, err := os.ReadFile("local.yml")
	if err != nil {
		// NOTE: 本当であればエラーをラップした方が良いが、今回はパス
		log.Print(err)
		return
	}
	// byteで読み込まれたyamlファイルをデコードし、第二引数の構造体に値を入れ込む
	yaml.Unmarshal(b, &user)
    // ログに下記項目を出力
	log.Print(user.Name)
	log.Print(user.Pass)
	log.Print(user.Age)
}

出力結果

deel
pass
23

まとめ

意外と簡単に読み込めてびっくりしました。
もう少しbyteとかの処理を理解したいなと新たな意欲が湧いたので、次はその辺りを使って遊んでみようと思います!!

書き込みについてもコーディングしてみましたので、ぜひリポジトリをみてみてください!
https://github.com/deel1931/read-yamlfile-go

Discussion