Sobes.tech
Back to questions
Junior — Middle
85

Каким образом можно определить конкретный тип объекта, реализующего интерфейс?

Answer from AI

sobes.tech AI

В Go для определения конкретного типа объекта, реализующего интерфейс, используется утверждение типа (type assertion) или переключение по типу (type switch).

Пример с утверждением типа:

var i interface{} = someInterfaceValue
if v, ok := i.(ConcreteType); ok {
    // v имеет тип ConcreteType
    fmt.Println("Это ConcreteType", v)
} else {
    fmt.Println("Другой тип")
}

Пример с type switch:

switch v := i.(type) {
case ConcreteType:
    fmt.Println("Это ConcreteType", v)
case AnotherType:
    fmt.Println("Это AnotherType", v)
default:
    fmt.Println("Неизвестный тип")
}