Какое место в ООП занимают структуры

«Какое место в ООП занимают структуры» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Структуры в Go — это аналог классов в других языках, но без наследования. Они позволяют группировать данные и методы, работающие с этими данными.

type Person struct {
    Name string
    Age  int
}

func (p Person) Greet() string {
    return "Hello, " + p.Name
}

Особенности:

  • Нет наследования, но есть композиция (встраивание структур).
  • Методы определяются отдельно от структуры, но привязаны к ней через получатель (receiver).
  • Интерфейсы реализуются неявно.
type Employee struct {
    Person  // Встраивание структуры Person
    Salary float64
}

Структуры в Go — это основа для ООП, но без классического наследования, что делает код проще и гибче.