Дар барномасозӣ чӣ фарқият байни интерфейсҳо ва намудҳои умумӣ вуҷуд дорад؟
sobes.tech AI
Ҷавоб аз AI
Интерфейсҳо ва намудҳои умумӣ вазифаҳои гуногунро дар барноманависӣ иҷро мекунанд:
-
Интерфейсҳо маҷмӯи усулҳоро тавсиф мекунанд, ки як навъи муайян бояд иҷро кунад. Онҳо имкон медиҳанд, ки бо намудҳои гуногун тавассути шартномаи умумӣ кор кунанд, ки полиморфизмро таъмин мекунад. Масалан, интерфейси
Readerдар Go усулиRead()-ро муайян мекунад, ва ҳар навъе, ки ин усулро иҷро мекунад, метавонад ҳамчунReaderистифода шавад. -
Намудҳои умумӣ имкон медиҳанд, ки функсияҳо ва сохторҳо навъҳои гуногуни маълумотро коркард кунанд, ҳангоми нигоҳ доштани бехатарии навъ. Онҳо намунаҳои параметрӣ мебошанд, ки дар вақти истифода барои навъҳои мушаххас компилятсия мешаванд.
Масалан дар Go:
// Интерфейс
type Reader interface {
Read(p []byte) (n int, err error)
}
// Функсияи умумӣ
func PrintSlice[T any](s []T) {
for _, v := range s {
fmt.Println(v)
}
}
Бинобар ин, интерфейсҳо рафторро муайян мекунанд, ва намудҳои умумӣ универсалиятро дар коди барои намудҳои гуногун пешниҳод мекунанд.