21 lines
365 B
Go
21 lines
365 B
Go
package set
|
|
|
|
import (
|
|
"errors"
|
|
"reflect"
|
|
)
|
|
|
|
func Field(dst interface{}, fieldName string, value interface{}) error {
|
|
|
|
valDst := reflect.ValueOf(dst).Elem()
|
|
dstField := valDst.FieldByName(fieldName)
|
|
|
|
val := reflect.ValueOf(value)
|
|
if dstField.Kind() != val.Kind() {
|
|
return errors.New("value-Type does not match to field")
|
|
}
|
|
|
|
dstField.Set(val)
|
|
return nil
|
|
}
|