Sobes.tech
Junior — Middle

Ako určiť konkrétny typ objektu, ktorý implementuje rozhranie?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa na určenie konkrétneho typu objektu, ktorý implementuje rozhranie, používa tvrdenie typu (type assertion) alebo prepínač typu (type switch).

Príklad s tvrdení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("Iný typ")
}

Príklad s prepínačom 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ámy typ")
}