Go environmentBool()

1 개요[ | ]

Go environmentBool()
package main

import (
	"fmt"
	"os"
	"strconv"
)

func environmentBool(name string) bool {
	b, _ := strconv.ParseBool(os.Getenv(name))
	return b
}

func main() {
	const name = "FOO"
	cases := map[string]map[string]bool{
		"True Cases": {
			"true": true,
			"TRUE": true,
			"1":    true,
		},
		"False Cases": {
			"false":    false,
			"FALSE":    false,
			"0":        false,
			"notabool": false,
			"":         false,
		},
	}

	for category, tests := range cases {
		fmt.Println("=== ", category, " ===")
		for val, want := range tests {
			os.Setenv(name, val)
			got := environmentBool(name)
			if got != want {
				fmt.Printf("❌ FAIL: environmentBool(%q) with value %q => %v; want %v\n", name, val, got, want)
			} else {
				fmt.Printf("✅ PASS: environmentBool(%q) with value %q => %v\n", name, val, got)
			}
		}
	}
}

/*
===  True Cases  ===
✅ PASS: environmentBool("FOO") with value "TRUE" => true
✅ PASS: environmentBool("FOO") with value "1" => true
✅ PASS: environmentBool("FOO") with value "true" => true
===  False Cases  ===
✅ PASS: environmentBool("FOO") with value "FALSE" => false
✅ PASS: environmentBool("FOO") with value "0" => false
✅ PASS: environmentBool("FOO") with value "notabool" => false
✅ PASS: environmentBool("FOO") with value "" => false
✅ PASS: environmentBool("FOO") with value "false" => false
*/

2 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}