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

Метод reflect.Type.Key

Метод reflect.Type.Key возвращает тип ключа для типа map. Этот метод полезен при работе с отражением, когда необходимо динамически определить тип ключа карты. Если вызвать метод на типе, который не является map, метод вернет nil. Метод принимает нуль параметров и возвращает значение типа reflect.Type.

Синтаксис

func (t Type) Key() Type

Пример

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

package main import ( "fmt" "reflect" ) func main() { var m map[string]int t := reflect.TypeOf(m) keyType := t.Key() fmt.Println(keyType) }

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

"string"

Пример

Получим тип ключа для map с ключами типа int:

package main import ( "fmt" "reflect" ) func main() { var m map[int]bool t := reflect.TypeOf(m) keyType := t.Key() fmt.Println(keyType) }

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

"int"

Пример

Попробуем вызвать метод на типе, который не является map:

package main import ( "fmt" "reflect" ) func main() { var s []int t := reflect.TypeOf(s) keyType := t.Key() if keyType == nil { fmt.Println("keyType is nil") } }

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

"keyType is nil"

Пример

Используем метод Key вместе с методом Kind для проверки типа ключа:

package main import ( "fmt" "reflect" ) func main() { var m map[string]float64 t := reflect.TypeOf(m) keyType := t.Key() if keyType.Kind() == reflect.String { fmt.Println("Key type is string") } }

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

"Key type is string"

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

  • метод reflect.Type.Elem,
    который возвращает тип элемента для slice, array, ptr, chan или map
  • функцию reflect.TypeOf,
    которая возвращает тип переданного значения
  • метод reflect.Type.Kind,
    который возвращает категорию типа
  • метод reflect.Value.MapIndex,
    который возвращает значение элемента map по ключу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить