Sobes.tech
Junior — Middle

Каква е разликата между интерфейсите и обобщените типове в програмирането?

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)
     }
 }

По този начин, интерфейсите определят поведението, а генеричните типове — универсалността на кода за различни типове.