Функция 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,
которая представляет отраженное значение в системе отражения