Sobes.tech
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")
}