Sobes.tech
Junior — Middle

Как може да се определи конкретният тип на обект, реализиращ интерфейс?

sobes.tech AI

Отговор от 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("Непознат тип")
}