РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1469 of 1593 menu

Функция reflect.MakeMap

Функция reflect.MakeMap создает новую карту (map) указанного типа во время выполнения программы. Она принимает один параметр - тип создаваемой карты, представленный объектом reflect.Type. Возвращает функция значение типа reflect.Value, содержащее ссылку на созданную пустую карту. Эта функция полезна, когда тип карты неизвестен на этапе компиляции и определяется динамически.

Синтаксис

reflect.MakeMap(typ reflect.Type) reflect.Value

Пример

Давайте создадим карту с ключами типа string и значениями типа int:

package main import ( "fmt" "reflect" ) func main() { mapType := reflect.MapOf(reflect.TypeOf(""), reflect.TypeOf(0)) mapValue := reflect.MakeMap(mapType) // Add elements to the map key := reflect.ValueOf("key1") value := reflect.ValueOf(42) mapValue.SetMapIndex(key, value) // Get element from the map key2 := reflect.ValueOf("key1") element := mapValue.MapIndex(key2) fmt.Println(element.Interface()) }

Результат выполнения кода:

42

Пример

Давайте создадим карту с ключами типа int и значениями типа string:

package main import ( "fmt" "reflect" ) func main() { mapType := reflect.MapOf(reflect.TypeOf(0), reflect.TypeOf("")) mapValue := reflect.MakeMap(mapType) // Add elements to the map key := reflect.ValueOf(1) value := reflect.ValueOf("one") mapValue.SetMapIndex(key, value) // Get element from the map key2 := reflect.ValueOf(1) element := mapValue.MapIndex(key2) fmt.Println(element.Interface()) }

Результат выполнения кода:

"one"

Смотрите также

  • функцию reflect.MakeSlice,
    которая создает новый срез (slice) заданного типа
  • функцию reflect.MapOf,
    которая возвращает тип карты (map) на основе типов ключа и значения
  • функцию reflect.Type,
    которая представляет тип значения в системе отражения
  • функцию reflect.Value,
    которая представляет отраженное значение в системе отражения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить