Sobes.tech
Junior — Middle

Интерфейстер мен жалпы типтер арасындағы айырмашылықтар қандай?

sobes.tech AI

AI-дан жауап

Интерфейстер мен жалпы типтер (generics) бағдарламалауда әртүрлі міндеттерді шешеді:

  • Интерфейстер — бұл типтің жүзеге асыруы керек әдістер жиынтығын сипаттайды. Олар әртүрлі типтермен жұмыс істеуге мүмкіндік береді, жалпы келісімшарт арқылы полиморфизмді қамтамасыз етеді. Мысалы, Go тілінде Reader интерфейсі 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)
     }
 }

Осылайша, интерфейстер мінез-құлықты анықтайды, ал жалпы типтер — әртүрлі типтер үшін кодтың әмбебаптығын қамтамасыз етеді.