Sobes.tech
Junior — Middle

Jak można określić konkretny typ obiektu implementującego interfejs?

sobes.tech AI

Odpowiedź od AI

W języku Go do określenia konkretnego obiektu implementującego interfejs używa się twierdzenia typu (type assertion) lub przełącznika typu (type switch).

Przykład z twierdzeniem typu:

var i interface{} = someInterfaceValue
if v, ok := i.(ConcreteType); ok {
    // v ma typ ConcreteType
    fmt.Println("To jest ConcreteType", v)
} else {
    fmt.Println("Inny typ")
}

Przykład z przełącznikiem typu:

switch v := i.(type) {
case ConcreteType:
    fmt.Println("To jest ConcreteType", v)
case AnotherType:
    fmt.Println("To jest AnotherType", v)
default:
    fmt.Println("Nieznany typ")
}