Используйте fmt для описания типа строки
Вы можете использовать флаг %T в пакете fmt, чтобы получить представление типа согласно синтаксису Go.
var x interface{} = []int{1, 2, 3}
xType := fmt.Sprintf("%T", x)
fmt.Println(xType) // "[]int"
(Пустой интерфейс, обозначенный interface{}, может содержать значения любого типа.)
Переключатель типов позволяет выбирать между типами
Используйте переключатель типа, чтобы сделать несколько утверждений типа последовательно.
var x interface{} = 2.3
switch v := x.(type) {
case int:
fmt.Println("int:", v)
case float64:
fmt.Println("float64:", v)
default:
fmt.Println("unknown")
}
// Вывод: float64: 2.3
Отражение (reflection) дает полную информацию о типе
Используйте пакет reflect, если указанных выше вариантов недостаточно.
var x interface{} = []int{1, 2, 3}
xType := reflect.TypeOf(x)
xValue := reflect.ValueOf(x)
fmt.Println(xType, xValue) // "[]int [1 2 3]"
Читайте также:
- Спецификация Go: типы (types)
- Использование fmt.Printf в Golang
- Доступ к приватным полям с помощью отражения в Golang
Комментариев нет:
Отправить комментарий