Junior — Middle
Jak lze určit konkrétní typ objektu implementujícího rozhraní?
sobes.tech AI
Odpověď od AI
V jazyce Go se pro určení konkrétního typu objektu, který implementuje rozhraní, používá tvrzení typu (type assertion) nebo přepínač typu (type switch).
Příklad s tvrzením typu:
var i interface{} = someInterfaceValue
if v, ok := i.(ConcreteType); ok {
// v má typ ConcreteType
fmt.Println("Toto je ConcreteType", v)
} else {
fmt.Println("Jiný typ")
}
Příklad s přepínačem typu:
switch v := i.(type) {
case ConcreteType:
fmt.Println("Toto je ConcreteType", v)
case AnotherType:
fmt.Println("Toto je AnotherType", v)
default:
fmt.Println("Neznámý typ")
}