Skip to content

esempio di interfacce #1

@MrPetru

Description

@MrPetru

in questa posizione la funzione interno.Store() non ha niente collegato con il embedding dell'interfaccia interno.Storer in interfaccia Extender perché viene direttamente chiamata dal pacchetto "interno".

lo stesso embedding (Storer in Extender) può essere ignorato totalmente.
l'utilizzo dell'interfaccia Storer avviene nel modulo "interno", l'interfaccia stessa viene definita qui e la funzione Store ha come input un dato di tipo Storer. A questo punto, go non accerterà che alla funzione Store li sia passato un dato che non implementa questa interfaccia.
Quando nel pacchetto "medio" viene chiamata la funzione interno.Store(o) go verificherà se l'oggetto "o" implementa l'interfaccia interno.Storer cioè, verificherà se "o" ha implementata la funzione "ToStoreFormat() string" e questa accade qui. Quindi, la funzione interno.Store(o) viene soddisfatta al interno del pacchetto "interno" con la condizione che l'oggetto passato può esse usato come Storer. Risulta che l'embedding al interno del pacchetto "medio" non è necessario questo si può verificare tramite il commit 6a71769

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions