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