Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: interface, method, abstraction, polymorphism

Расскажите об интерфейсах в Go. Чем они являются и как работают?

Этот вопрос проверяет знание интерфейсов в Go, которые позволяют абстрагировать поведение объектов и создавать код, независимый от конкретных типов.

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

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

Длинный ответ

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

Пример интерфейса:

package main

import "fmt"

// Определение интерфейса
type Speaker interface {
    	Speak() string
}

// Реализация интерфейса
type Person struct {
    	Name string
}

func (p Person) Speak() string {
    	return "Hello, my name is " + p.Name
}

func main() {
    	var s Speaker
    	s = Person{Name: "John"}
    	fmt.Println(s.Speak())  // Hello, my name is John
}

Интерфейсы позволяют создавать гибкие и расширяемые системы, где можно легко добавлять новые типы, не изменяя существующий код. Это широко используется для абстракций в Go, 

например, для работы с базами данных, API или в любых других случаях, где требуется поведение, не привязанное к конкретному типу.

В каких случаях использовать:

  • Когда необходимо создать общие методы для разных типов, например, для работы с различными источниками данных или логикой.

  • В случае, когда нужно создать общее поведение, но без жесткой привязки к конкретной реализации.

  • Когда требуется максимальная гибкость и расширяемость, чтобы легко добавлять новые типы, реализующие интерфейсы.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Golang

    Golang

Ключевые слова

#interface

#method

#abstraction

#polymorphism

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.