Sobes.tech
Junior — Middle

Was ist der Unterschied zwischen einer Struktur ohne Methoden und einer Schnittstelle in einer Programmiersprache?

sobes.tech KI

Antwort von AI

In Go ist eine Struktur (struct) ein konkreter Datentyp, der eine Reihe von Feldern (Variablen) enthält. Sie beschreibt, wie die Daten organisiert sind, enthält aber selbst kein Verhalten.

Das Interface (interface) in Go beschreibt eine Reihe von Methoden, die ein Typ implementieren muss, um diesem Interface zu entsprechen. Das Interface enthält keine Daten, nur die Signaturen der Methoden.

Hauptunterschiede:

  • Struktur: ist eine konkrete Implementierung mit Feldern.
  • Interface: eine Abstraktion, die das Verhalten durch Methoden beschreibt.
  • Eine Struktur kann ein oder mehrere Interfaces implementieren, wenn sie die entsprechenden Methoden hat.

Beispiel:

// Struktur ohne Methoden
type User struct {
    Name string
    Age  int
}

// Interface mit Methode
type Greeter interface {
    Greet() string
}

// Implementierung des Interfaces
func (u User) Greet() string {
    return "Hello, " + u.Name
}

Hier ist User eine Struktur mit Feldern, und Greeter ist ein Interface, das das Verhalten beschreibt. Ohne die Methode Greet implementiert die Struktur User das Interface Greeter nicht.