@@ -78,6 +78,21 @@ func SetValue(f reflect.Value, v interface{}) bool {
78
78
f .SetBool (d [0 ] != 0 )
79
79
}
80
80
break
81
+ case reflect .Uint8 , reflect .Uint16 , reflect .Uint32 , reflect .Uint64 , reflect .Uint :
82
+ hasAssigned = true
83
+ f .SetBool (vv .Uint () != 0 )
84
+ break
85
+ case reflect .Int , reflect .Int8 , reflect .Int16 , reflect .Int32 , reflect .Int64 :
86
+ hasAssigned = true
87
+ f .SetBool (vv .Int () != 0 )
88
+ break
89
+ case reflect .String :
90
+ b , err := strconv .ParseBool (vv .String ())
91
+ if err == nil {
92
+ hasAssigned = true
93
+ f .SetBool (b )
94
+ }
95
+ break
81
96
}
82
97
break
83
98
case reflect .String :
@@ -174,6 +189,13 @@ func SetValue(f reflect.Value, v interface{}) bool {
174
189
}
175
190
}
176
191
break
192
+ case reflect .String :
193
+ b , err := strconv .ParseInt (vv .String (), 10 , 64 )
194
+ if err == nil {
195
+ hasAssigned = true
196
+ f .SetInt (b )
197
+ }
198
+ break
177
199
}
178
200
break
179
201
case reflect .Float32 , reflect .Float64 :
@@ -191,6 +213,13 @@ func SetValue(f reflect.Value, v interface{}) bool {
191
213
}
192
214
}
193
215
break
216
+ case reflect .String :
217
+ b , err := strconv .ParseFloat (vv .String (), 10 )
218
+ if err == nil {
219
+ hasAssigned = true
220
+ f .SetFloat (b )
221
+ }
222
+ break
194
223
}
195
224
break
196
225
case reflect .Uint8 , reflect .Uint16 , reflect .Uint32 , reflect .Uint64 , reflect .Uint :
@@ -212,6 +241,13 @@ func SetValue(f reflect.Value, v interface{}) bool {
212
241
}
213
242
}
214
243
break
244
+ case reflect .String :
245
+ b , err := strconv .ParseUint (vv .String (), 10 , 64 )
246
+ if err == nil {
247
+ hasAssigned = true
248
+ f .SetUint (b )
249
+ }
250
+ break
215
251
}
216
252
break
217
253
case reflect .Struct :
0 commit comments