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

Метод reflect.Type.Len

Метод reflect.Type.Len используется для получения длины типа, который представляет собой массив или канал. В первый и единственный параметр метод принимает reflect.Type и возвращает целое число int — количество элементов. Если тип не является массивом или каналом, метод вызывает панику. Для слайсов длину нужно получать через функцию reflect.Value.Len.

Синтаксис

type Len() int

Пример 1

Давайте получим длину типа массива из 5 элементов:

package main import ( "fmt" "reflect" ) func main() { var arr [5]int t := reflect.TypeOf(arr) res := t.Len() fmt.Println(res) }

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

5

Пример 2

Получим длину типа канала с буфером на 10 элементов:

package main import ( "fmt" "reflect" ) func main() { var ch chan int = make(chan int, 10) t := reflect.TypeOf(ch) res := t.Len() fmt.Println(res) }

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

10

Пример 3

Важно помнить, что для слайсов reflect.Type.Len не работает. Попытка применить метод к слайсу приведет к панике:

package main import ( "fmt" "reflect" ) func main() { sl := []string{"a", "b", "c"} t := reflect.TypeOf(sl) res := t.Len() fmt.Println(res) }

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

panic: reflect: call of reflect.Type.Len on slice Type

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

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