Wat is de relatie tussen een lege interface en een gewone interface in programmeren?
sobes.tech AI
Antwoord van AI
In Go is de lege interface interface{} een interface die geen methoden bevat. Het kan een waarde van elk type opslaan, omdat alle types standaard de lege interface implementeren. Een normale interface daarentegen, definieert een set methoden die een type moet implementeren om aan die interface te voldoen.
De relatie tussen de lege en de normale interface in Go is dat de lege interface een universele container is voor waarden van elk type, terwijl de normale interface een contract vastlegt dat specifieke types moeten naleven. De lege interface wordt vaak gebruikt om gegevens zonder specifiek type op te slaan en door te geven, terwijl normale interfaces worden gebruikt om het gedrag van objecten te definiëren.
Voorbeeld:
var any interface{} = 42 // de lege interface kan elke waarde opslaan
// Normale interface
type Reader interface {
Read(p []byte) (n int, err error)
}
// Type dat de Reader interface implementeert
type File struct {}
func (f File) Read(p []byte) (int, error) {
// implementatie
return 0, nil
}
var r Reader = File{} // File implementeert de Reader interface