Gehen "erbschaft" - die Verwendung anonymer Typ in einen struct als parameter der Methode

Ich versuche, die Firma, das Konzept des inheritence, dass Go bietet (eher die "Komposition" als Reine inheritence, vielleicht). Jedoch, ich scheitern zu verstehen, warum ich kann nicht mit den "Eltern" - Typ als func parameter zu produzieren, eine generische Funktion, wirkt auf die parameter.

package main

import "log"

type Animal struct {
    Colour string
    Name string
}

type Dog struct {
    Animal
}

func PrintColour(a *Animal) {
    log.Printf("%s\n", a.Colour)
}


func main () {
    a := new (Animal)
    a.Colour = "Void"
    d := new (Dog)
    d.Colour = "Black"

    PrintColour(a)
    PrintColour(d)
}

Vorausgesetzt mein Verständnis falsch ist, wie kann ich erreichen, was ich will in Gehen?

Bearbeiten
Hinweis:

  • Möchte ich nicht anfügen, das Verhalten der Struktur

  • Ich würde gerne zu halten, der Typ pointer als parameter der Methode, weil ich arbeiten bin getrennt auf eine pet-Projekt und das erfordert-ich manipuliere das struct übergeben, bevor Sie dann auf ihn einwirkenden.

  • In Wirklichkeit, meine Dog struct müssten zusätzliche Felder/Mitglieder; hoffentlich nicht schlammig das Wasser weiter

InformationsquelleAutor Alex | 2014-02-03
Schreibe einen Kommentar