Sobes.tech
Назад к вопросам
Junior — Middle
76

Можно ли выполнять проверку типа данных в языке Go?

Компании, где спрашивали
Самокат Тех

Ответ от нейросети

sobes.tech AI

В Go можно выполнять проверку типа данных во время выполнения с помощью конструкции type assertion и type switch. Это полезно, когда у вас есть переменная интерфейсного типа (interface{}), и нужно определить её конкретный тип.

Пример с type assertion:

var i interface{} = "строка"

s, ok := i.(string) // ok будет true, если i действительно string
if ok {
    fmt.Println("Это строка:", s)
} else {
    fmt.Println("Не строка")
}

Пример с type switch:

switch v := i.(type) {
case int:
    fmt.Println("int", v)
case string:
    fmt.Println("string", v)
default:
    fmt.Println("другой тип")
}

Таким образом, Go поддерживает проверку типа во время выполнения, но не имеет встроенной функции для проверки типа переменной на этапе компиляции, так как язык статически типизирован.