yjp 1 жил өмнө
parent
commit
0a986587f9
2 өөрчлөгдсөн 16 нэмэгдсэн , 1 устгасан
  1. 1 1
      yaml/yaml.go
  2. 15 0
      yaml/yaml_test.go

+ 1 - 1
yaml/yaml.go

@@ -38,7 +38,7 @@ func loadYaml(r io.Reader, retObjects *[]any) error {
 
 		retObjectType := reflect.TypeOf(retObject)
 
-		if retObjectType.Kind() != reflect.Ptr || retObjectType.Kind() != reflect.Map {
+		if retObjectType.Kind() != reflect.Ptr && retObjectType.Kind() != reflect.Map {
 			return errors.New("返回对象slice元素需要指针")
 		}
 

+ 15 - 0
yaml/yaml_test.go

@@ -56,4 +56,19 @@ func TestLoadYAMLFile(t *testing.T) {
 	if retObjects[1].(*TestYamlModel2).Name != "foo2" {
 		t.Fatal("model2名称错误")
 	}
+
+	retObjects = []any{make(map[string]any), make(map[string]any)}
+
+	err = LoadYamlFile("test.yaml", &retObjects)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if retObjects[0].(map[string]any)["test1"].(map[string]any)["name"] != "foo1" {
+		t.Fatal("model1名称错误")
+	}
+
+	if retObjects[1].(map[string]any)["test2"].(map[string]any)["name"] != "foo2" {
+		t.Fatal("model2名称错误")
+	}
 }