Является ли Go объектно-ориентированным или структурным языком? Пройдись по основным принципам ООП (инкапсуляция, полиморфизм, наследование, абстракция) и покажи, как они реализуются в Go.

В Go внутренние детали объекта (структуры) можно скрыть с помощью экспорта полей и методов.

Короткий ответ

Что ответить на собеседовании

В Go внутренние детали объекта (структуры) можно скрыть с помощью экспорта полей и методов. Если имя поля или метода начинается с заглавной буквы, оно экспортируется и доступно из других пакетов. Если с маленькой — поле или метод приватны для пакета и недоступны извне.

Подробный разбор

Ответ с пояснениями

В Go внутренние детали объекта (структуры) можно скрыть с помощью экспорта полей и методов. Если имя поля или метода начинается с заглавной буквы, оно экспортируется и доступно из других пакетов. Если с маленькой — поле или метод приватны для пакета и недоступны извне.

Пример:

package mypackage

type User struct {
    Name string // экспортируемое поле
    age  int    // приватное поле
}

func (u *User) GetAge() int { // экспортируемый метод для доступа к приватному полю
    return u.age
}

Таким образом, скрыть внутренние детали можно, делая поля и методы неэкспортируемыми (с маленькой буквы) и предоставляя доступ через экспортируемые методы.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку