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

Метод reflect.Value.Index

Метод reflect.Value.Index возвращает новое значение reflect.Value, представляющее элемент коллекции по указанному индексу. Метод принимает один параметр - индекс элемента типа int, и возвращает reflect.Value элемента. Он работает со слайсами, массивами и строками. Если значение не является слайсом, массивом или строкой, или индекс выходит за границы, возникает паника.

Синтаксис

value.Index(i int) reflect.Value

Пример

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

package main import ( "fmt" "reflect" ) func main() { slice := []string{"a", "b", "c", "d", "e"} val := reflect.ValueOf(slice) elem := val.Index(1) fmt.Println(elem.Interface()) }

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

"b"

Пример

Давайте получим третий элемент из массива целых чисел:

package main import ( "fmt" "reflect" ) func main() { array := [5]int{1, 2, 3, 4, 5} val := reflect.ValueOf(array) elem := val.Index(2) fmt.Println(elem.Interface()) }

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

3

Пример

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

package main import ( "fmt" "reflect" ) func main() { str := "abcde" val := reflect.ValueOf(str) elem := val.Index(0) fmt.Println(elem.Interface()) }

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

97

Обратите внимание: для строк метод возвращает код символа типа uint8 (байт), а не символ как строку.

Пример

Давайте получим последний элемент слайса, используя метод Len для определения длины:

package main import ( "fmt" "reflect" ) func main() { slice := []int{10, 20, 30, 40, 50} val := reflect.ValueOf(slice) last := val.Index(val.Len() - 1) fmt.Println(last.Interface()) }

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

50

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

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