تمرين إعادة البناء
Env Config Reader
أعد كتابة برنامج Go يقرأ إعدادات من متغيرات البيئة.
go
~20 دقيقة
متوسط
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
package main
import (
"fmt"
"os"
"strconv"
"time"
)
type Config struct {
AppName string
Port int
Debug bool
Timeout time.Duration
}
func envString(key, fallback string) string {
value := os.Getenv(key)
if value == "" {
return fallback
}
return value
}
func envInt(key string, fallback int) int {
value, err := strconv.Atoi(os.Getenv(key))
if err != nil {
return fallback
}
return value
}
func envBool(key string, fallback bool) bool {
value, err := strconv.ParseBool(os.Getenv(key))
if err != nil {
return fallback
}
return value
}
func loadConfig() Config {
return Config{
AppName: envString("APP_NAME", "azlearn"),
Port: envInt("PORT", 8080),
Debug: envBool("DEBUG", false),
Timeout: time.Duration(envInt("TIMEOUT_SECONDS", 5)) * time.Second,
}
}
func main() {
os.Setenv("APP_NAME", "rebuild")
os.Setenv("DEBUG", "true")
config := loadConfig()
fmt.Printf("%+v\n", config)
}اكتب هنا