Junior
Kā pārbaudīt saskarnes tipu Go?
sobes.tech AI
Atbilde no AI
Go valodā bieži izmanto type assertion vai type switch, lai pārbaudītu interfeisa tipu.
Ja jums ir mainīgais ar interfeisa tipu, piemēram, var i interface{}, un vēlaties pārbaudīt, vai tas īsteno konkrētu interfeisu vai ir konkrēta tipa, to var izdarīt šādi:
if v, ok := i.(MyInterface); ok {
// i īsteno MyInterface, v ir pārveidots tips
}
Lai pārbaudītu vairākus tipus, ir ērti izmantot type switch:
switch v := i.(type) {
case MyInterface:
// i īsteno MyInterface
case *MyStruct:
// i ir norādītājs uz MyStruct
default:
// cits tips
}
Ja vēlaties pārbaudīt tipu dinamiskāk, var izmantot reflect paketi:
import "reflect"
t := reflect.TypeOf(i)
if t.Implements(reflect.TypeOf((*MyInterface)(nil)).Elem()) {
// i īsteno MyInterface
}
Tādējādi, vienkāršos gadījumos pietiek ar type assertion vai type switch; sarežģītākos — ar reflection.