Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: type assertion, type switch, interface, dynamic types, types

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

Этот вопрос проверяет знание механизма проверки типа переменной в 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

    Golang

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

#type assertion

#type switch

#interface

#dynamic types

#types

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

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