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

Метод reflect.Value.Cap

Метод reflect.Value.Cap возвращает ёмкость составного типа, представленного значением reflect.Value. Он работает с типами slice, array и chan. Если значение не является одним из этих типов, метод вызывает панику.

Синтаксис

func (v Value) Cap() int

Пример работы с массивом

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

package main import ( "fmt" "reflect" ) func main() { arr := [5]int{1, 2, 3, 4, 5} val := reflect.ValueOf(arr) res := val.Cap() fmt.Println(res) }

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

5

Пример работы со слайсом

Давайте создадим слайс с ёмкостью 10 и получим её значение:

package main import ( "fmt" "reflect" ) func main() { sl := make([]string, 0, 10) val := reflect.ValueOf(sl) res := val.Cap() fmt.Println(res) }

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

10

Пример работы с каналом

Давайте получим ёмкость буферизированного канала:

package main import ( "fmt" "reflect" ) func main() { ch := make(chan int, 20) val := reflect.ValueOf(ch) res := val.Cap() fmt.Println(res) }

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

20

Пример сравнения Len и Cap

Давайте сравним длину и ёмкость слайса после добавления элементов:

package main import ( "fmt" "reflect" ) func main() { sl := make([]int, 3, 5) sl = append(sl, 4, 5, 6) val := reflect.ValueOf(sl) length := val.Len() capacity := val.Cap() fmt.Printf("Len: %d, Cap: %d", length, capacity) }

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

Len: 6, Cap: 10

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

  • метод reflect.Value.Len,
    который возвращает длину составного типа
  • тип reflect.Value,
    представляющий отражённое значение Go-переменной
  • функцию reflect.ValueOf,
    которая создаёт значение reflect.Value из интерфейса
  • тип reflect.Kind,
    который определяет конкретный вид типа данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить