mirror of
https://github.com/ManyakRus/starter.git
synced 2025-11-27 23:18:34 +02:00
сделал GetStructValue()
This commit is contained in:
@@ -1884,3 +1884,25 @@ func Find_Tag_JSON(Struct1 any, FieldName string) (string, error) {
|
||||
|
||||
return Otvet, err
|
||||
}
|
||||
|
||||
// GetStructValue - возвращает значение 1 поля структуры по его имени
|
||||
func GetStructValue(Struct1 any, FieldName string) (any, error) {
|
||||
// Проверяем, что переданный аргумент является структурой
|
||||
val := reflect.ValueOf(Struct1)
|
||||
if val.Kind() == reflect.Ptr {
|
||||
val = val.Elem()
|
||||
}
|
||||
|
||||
if val.Kind() != reflect.Struct {
|
||||
return nil, errors.New("переданный аргумент не является структурой")
|
||||
}
|
||||
|
||||
// Получаем поле структуры по имени
|
||||
field := val.FieldByName(FieldName)
|
||||
if !field.IsValid() {
|
||||
return nil, errors.New("поле не найдено")
|
||||
}
|
||||
|
||||
// Возвращаем значение поля как interface{}
|
||||
return field.Interface(), nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user