Sobes.tech
Junior — Middle

Чӣ гуна метавон намудҳои мушаххасро муайян кард, ки объект интерфейсро иҷро мекунад?

sobes.tech AI

Ҷавоб аз AI

Дар забони Go барои муайян кардани объекти муайяни навъ, ки интерфейсро иҷро мекунад, истифода мешавад изҳороти навъ (type assertion) ё switch-и навъ (type switch).

Масалан бо изҳороти навъ:

var i interface{} = someInterfaceValue
if v, ok := i.(ConcreteType); ok {
    // v навъи ConcreteType дорад
    fmt.Println("Инҳоянд ConcreteType", v)
} else {
    fmt.Println("Навъи дигар")
}

Масалан бо switch-и навъ:

switch v := i.(type) {
case ConcreteType:
    fmt.Println("Инҳоянд ConcreteType", v)
case AnotherType:
    fmt.Println("Инҳоянд AnotherType", v)
default:
    fmt.Println("Навъи ношинохта")
}