Sobes.tech
Back to questions
Junior — Middle
83

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

Companies where asked
Evrone

Answer from AI

sobes.tech AI

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

Чтобы определить, что конкретный интерфейс реализуется с помощью структуры, нужно проверить:

  • Наличие у структуры всех методов интерфейса.
  • Совпадение сигнатур этих методов.

Пример:

package main

import "fmt"

type Speaker interface {
    Speak() string
}

type Person struct {
    Name string
}

func (p Person) Speak() string {
    return "Привет, меня зовут " + p.Name
}

func main() {
    var s Speaker = Person{Name: "Иван"}
    fmt.Println(s.Speak())
}

Здесь структура Person реализует интерфейс Speaker, так как у неё есть метод Speak с нужной сигнатурой.