From 9b497910e183956cf8ad93929ac13b2707ea1129 Mon Sep 17 00:00:00 2001 From: Yun Date: Sat, 13 Apr 2024 10:43:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo.yaml | 1 + yamlx.go | 10 ++++++++-- yamlx_test.go | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 demo.yaml create mode 100644 yamlx_test.go diff --git a/demo.yaml b/demo.yaml new file mode 100644 index 0000000..55270fd --- /dev/null +++ b/demo.yaml @@ -0,0 +1 @@ +name: "名字" \ No newline at end of file diff --git a/yamlx.go b/yamlx.go index b4d29b1..2268d65 100644 --- a/yamlx.go +++ b/yamlx.go @@ -3,18 +3,24 @@ package yamlx import ( "log" "os" + "reflect" "gopkg.in/yaml.v2" ) // 初始化配置 -func InitConfig(path string, onfigData interface{}) { +func InitConfig(path string, configData interface{}) { + // 判断是否指针 + if reflect.ValueOf(configData).Kind() != reflect.Ptr { + panic("接收数据需要是指针类型") + } + data, err := os.ReadFile(path) if err != nil { log.Panicf("read config file error,%v", err) } - err = yaml.Unmarshal(data, &onfigData) + err = yaml.Unmarshal(data, configData) if err != nil { log.Panicf("parse config file error, %v", err) } diff --git a/yamlx_test.go b/yamlx_test.go new file mode 100644 index 0000000..b89abaf --- /dev/null +++ b/yamlx_test.go @@ -0,0 +1,18 @@ +package yamlx_test + +import ( + "fmt" + "testing" + + "code.yun.ink/pkg/yamlx" +) + +func TestConfig(t *testing.T) { + c := Config{} + yamlx.InitConfig("./demo.yaml", &c) + fmt.Println(c) +} + +type Config struct { + Name string `json:"name" yaml:"name"` +}