Golang вопросы собеседований
13.5K subscribers
631 photos
3 videos
1 file
433 links
@notxxx1 - админ

@Golang_google - Golang для разработчиков

@itchannels_telegram - 🔥лучшие из ит

@golangl - chat

@golangtests - golang tests

@golang_jobsgo - go chat jobs

@ai_machinelearning_big_data - AI

@data_analysis_ml

РКН: clck.ru/3FmtKd
加入频道
Один из вопросов, которые любят задавать кандидатам с самого начала собеседования - это "Как реализовано ООП в go?".

Ответ: Сейчас мы не будем вдаваться в то, что такое ООП. Об этом можно почитать на Хабре на других ресурсах. Информации про это великое множество.

На сам вопрос можно ответить, что в go нет классической реализация ООП, так как он не объектно-ориентированный язык. При этом в go есть свои приближения к этой реализации. Сейчас поговорим об этом конкретнее.

@golang_interview
"Как реализовано наследование?"

Ответ
Как такового наследования в go нет, но при этом у нас есть структуры - это специальные типы, в которые мы можем включать другие типы, в том числе такие же структуры. При этом методы дочерних структур родительская структура также будет наследовать.

Отсюда интервьюер может задать вопрос: "Что будет, если и в родительской и дочерней структуре есть реализация методов с одинаковым названием?" Ответ на этот вопрос такой: "Реализация родительского метода будет переписана реализацией дочернего метода".

@golang_interview
"Как реализована Инкапсуляция в go?"

Инкапсуляция в go - это возможность задавать переменным, функциям и методам первую букву названия в верхнем или нижнем регистре. Соответственно нижний регистр будет значить, что переменная, функция или метод доступна только в рамках пакета. Тогда как верхний регистр даст доступ к переменной, функции или методу за рамками пакета.

@golang_interview
"Как реализован полиморфизм в go?"

Полиморфизм в go реализован с помощью интерфейсов. Что такое интерфейс мы будем разбираться ниже. Основная идея заключается в том, что мы можем объявить интерфейсы (контракты на определённое поведение) для наших типов. При этом, для типов мы должны реализовать методы, удовлетворяющие этим интерфейсам. Таким образом, мы сможем работать со всем набором типов, у которых реализовали интерфейсы, как с единым интерфейсным типом.

@golang_interview