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

Константа reflect.Int

Константа reflect.Int представляет собой значение типа reflect.Kind, которое используется для обозначения всех целых чисел со знаком в Go. Сюда входят типы int, int8, int16, int32 и int64. Константа применяется в основном при работе с рефлексией для проверки динамического типа значения. Как правило, она используется в паре с методом Kind у типа reflect.Value или reflect.Type.

Синтаксис

reflect.Int

Константа не принимает параметров и возвращает значение типа reflect.Kind. Обычно ее используют в сравнениях с результатом метода Kind.

Пример

Давайте проверим, является ли переданное значение целым числом со знаком:

package main import ( "fmt" "reflect" ) func main() { var num int = 42 val := reflect.ValueOf(num) if val.Kind() == reflect.Int { fmt.Println("Value is a signed integer") } else { fmt.Println("Value is not a signed integer") } }

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

"Value is a signed integer"

Пример

Проверим различные числовые типы на принадлежность к категории reflect.Int:

package main import ( "fmt" "reflect" ) func main() { values := []interface{}{ 100, int8(10), int16(20), int32(30), int64(40), uint(50), float64(60.0), "hello", } for _, v := range values { val := reflect.ValueOf(v) if val.Kind() == reflect.Int { fmt.Printf("%v is signed integer\n", v) } else { fmt.Printf("%v is not signed integer\n", v) } } }

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

"100 is signed integer" "10 is signed integer" "20 is signed integer" "30 is signed integer" "40 is signed integer" "50 is not signed integer" "60 is not signed integer" "hello is not signed integer"

Пример

Использование константы для проверки типа в функции, которая обрабатывает только целые числа со знаком:

package main import ( "fmt" "reflect" ) func processInt(v interface{}) error { val := reflect.ValueOf(v) if val.Kind() != reflect.Int { return fmt.Errorf("expected signed integer, got %s", val.Kind()) } fmt.Printf("Processing int: %d\n", val.Int()) return nil } func main() { err := processInt(123) if err != nil { fmt.Println(err) } err = processInt("string") if err != nil { fmt.Println(err) } }

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

"Processing int: 123" "expected signed integer, got string"

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

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