Sobes.tech
Junior — Middle

Hogyan lehet meghatározni egy interfészt megvalósító objektum konkrét típusát?

sobes.tech MI

Válasz az MI-től

Go nyelven az adott interfészt megvalósító objektum konkrét típusának meghatározásához típusállítást (type assertion) vagy típusváltást (type switch) használunk.

Típusállítás példája:

var i interface{} = someInterfaceValue
if v, ok := i.(ConcreteType); ok {
    // v ConcreteType típusú
    fmt.Println("Ez a ConcreteType", v)
} else {
    fmt.Println("Más típus")
}

Típusváltás példája:

switch v := i.(type) {
case ConcreteType:
    fmt.Println("Ez a ConcreteType", v)
case AnotherType:
    fmt.Println("Ez az AnotherType", v)
default:
    fmt.Println("Ismeretlen típus")
}