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

Константа reflect.Bool представляет собой значение типа reflect.Kind, которое идентифицирует логический тип данных. Она используется в пакете reflect для определения, является ли значение типа bool. При работе с рефлексией константа reflect.Bool позволяет проверить тип значения и выполнить соответствующие операции, такие как получение или установка логического значения.

Синтаксис

goreflect.Bool

Пример

Давайте проверим, является ли значение типа bool с помощью константы reflect.Bool:

gopackage main

import (
  "fmt"
  "reflect"
)

func main() {
  var x bool = true
  v := reflect.ValueOf(x)

  if v.Kind() == reflect.Bool {
    fmt.Println("Value is of type bool")
  }
}

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

go"Value is of type bool"

Пример

Давайте получим логическое значение с помощью метода Bool после проверки типа через reflect.Bool:

gopackage main

import (
  "fmt"
  "reflect"
)

func main() {
  var y bool = false
  v := reflect.ValueOf(y)

  if v.Kind() == reflect.Bool {
    res := v.Bool()
    fmt.Println(res)
  }
}

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

gofalse

Пример

Давайте установим новое логическое значение с помощью метода SetBool после проверки типа через reflect.Bool:

gopackage main

import (
  "fmt"
  "reflect"
)

func main() {
  var z bool = true
  v := reflect.ValueOf(&z).Elem()

  if v.Kind() == reflect.Bool {
    v.SetBool(false)
    fmt.Println(z)
  }
}

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

gofalse

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

  • функцию reflect.Value.Kind,
    которая возвращает вид значения
  • функцию reflect.Value.SetBool,
    которая устанавливает логическое значение
  • константу reflect.Int,
    которая представляет целочисленный тип
  • константу reflect.String,
    которая представляет строковый тип