@@ -118,6 +118,11 @@ func tryToSetValue(value reflect.Value, field reflect.StructField, form map[stri
118
118
vs = []string {defaultValue }
119
119
}
120
120
return true , setSlice (vs , value , field )
121
+ case reflect .Array :
122
+ if ! ok {
123
+ vs = []string {defaultValue }
124
+ }
125
+ return true , setArray (vs , value , field )
121
126
default :
122
127
var val string
123
128
if ! ok {
@@ -256,14 +261,22 @@ func setTimeField(val string, structField reflect.StructField, value reflect.Val
256
261
return nil
257
262
}
258
263
259
- func setSlice (vals []string , value reflect.Value , field reflect.StructField ) error {
260
- slice := reflect .MakeSlice (value .Type (), len (vals ), len (vals ))
264
+ func setArray (vals []string , value reflect.Value , field reflect.StructField ) error {
261
265
for i , s := range vals {
262
- err := setWithProperType (s , slice .Index (i ), field )
266
+ err := setWithProperType (s , value .Index (i ), field )
263
267
if err != nil {
264
268
return err
265
269
}
266
270
}
271
+ return nil
272
+ }
273
+
274
+ func setSlice (vals []string , value reflect.Value , field reflect.StructField ) error {
275
+ slice := reflect .MakeSlice (value .Type (), len (vals ), len (vals ))
276
+ err := setArray (vals , slice , field )
277
+ if err != nil {
278
+ return err
279
+ }
267
280
value .Set (slice )
268
281
return nil
269
282
}
0 commit comments