У нас вы можете посмотреть бесплатно Reflection (рефлексия) или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
Рефлексия или отображение - это один из видов метапрограммирования позволяющий нам в рантайме (ходе выполнения программы) определять типы данных переменных, поля структур и другую информацию, домтупную на этапе программирования, но не доступную, без рефлексии в рантайме. Рефлексия поможет Вам не дублировать Ваш код. Удачи Вам в изучении программирования в целом и языка Го в частности, я постараюсь Вам в этом помочь )). На этом канале будут околокомпьютерные видео, видео по обзорам железа софта и создания собственного софта. Таймкоды: 00:00 - теория 00:41 - несколько функций решающих одну проблему 02:33 - описание рефлексии 04:12 - простой пример 05:28 - рефлексия для структур 06:34 - практика структурной рефлексии 08:56 - пример полезных функций с рефлексией Примеры кода: func isEmpty(val interface{}) bool { return reflect.ValueOf(val).IsZero() } func setValue(structure interface{}, key string, value interface{}) { if reflect.TypeOf(structure).Elem().Kind() == reflect.Struct { elem := reflect.ValueOf(structure).Elem() field := elem.FieldByName(key) if field.CanSet() { field.Set(reflect.ValueOf(value)) } } } func getValue(structure interface{}, key string) interface{} { var result interface{} if reflect.TypeOf(structure).Elem().Kind() == reflect.Struct { elem := reflect.ValueOf(structure).Elem() field := elem.FieldByName(key) if field.IsValid() { result = field.Interface() } } return result } func concat(a interface{}, b interface{}) interface{} { if reflect.TypeOf(a).Kind() == reflect.Int && reflect.TypeOf(b).Kind() == reflect.Int { return reflect.ValueOf(a).Int() + reflect.ValueOf(b).Int() } if reflect.TypeOf(a).Kind() == reflect.String && reflect.TypeOf(b).Kind() == reflect.String { return reflect.ValueOf(a).String() + reflect.ValueOf(b).String() } return nil } Golang: https://go.dev/ Telegram: https://t.me/joinchat/AAAAAExrJOerRxC... Discord: / discord Github: https://github.com/SamDiy/languages