Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Как проверить тип переменной в среде выполнения?

Этот вопрос проверяет знание механизма проверки типа переменной в Go. Понимание Type Assertion и Type Switch позволяет правильно работать с интерфейсами и динамическими типами.

Короткий ответ

Для проверки типа переменной в Go используется конструкция Type Switch или Type Assertion. Type Switch позволяет проверить тип переменной в условии switch, а Type Assertion — извлечь конкретный тип из интерфейса.

Длинный ответ

Go имеет механизм работы с интерфейсами, который позволяет переменным принимать значения разных типов. Для проверки типа переменной в Go существует два подхода: Type Switch и Type 

Assertion.

 

- Type Assertion используется, чтобы извлечь конкретный тип из интерфейса:

package main

import "fmt"

func printType(i interface{}) {
    if v, ok := i.(int); ok {
        fmt.Println("Integer:", v)
    } else {
        fmt.Println("Not an integer")
    }
}

func main() {
    printType(42) // Integer: 42
    printType("Hello") // Not an integer
}

 

- Type Switch позволяет проверять переменные на несколько типов сразу:

package main

import "fmt"

func checkType(i interface{}) {
    switch v := i.(type) {
    case int:
        fmt.Printf("Integer: %v\n", v)
    case string:
        fmt.Printf("String: %v\n", v)
    default:
        fmt.Printf("Unknown type: %T\n", v)
    }
}

func main() {
    checkType(42) // Integer: 42
    checkType("Hello") // String: Hello
    checkType(3.14) // Unknown type: float64
}

Type Switch часто используется для динамической работы с переменными различных типов, например, в обработке интерфейсов.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • Golang

Ключевые слова

#type assertion

#type switch

#interface

#dynamic types

#types

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.