2015-05-11 15 views
6

Arabirimde, Go'da başka bir arabirim tarafından tanımlanan yöntemleri de eklemenin bir yolu var mı? ÖrneğinArabirimlerin bileşimi [Golang]

: Ben SpecificDatabase arayüzü BasicDatabase arayüzü içerdiğini belirtmek için bir yol istiyorum

type BasicDatabase interface { 
    CreateTable(string) error 
    DeleteTable(string) error 
} 

type SpecificDatabase interface { 
    CreateUserRecord(User) error 
} 

. Go'nun yapısına benzer şekilde, yapının kompozisyonunu yapmana izin verir.

Bu şekilde, yöntemlerim SpecificDatabase'u uygulayan bir tür alabilir ancak yine de CreateTable() numaralı telefonu arayabilir.

+0

['io.ReadWriteCloser'] gibi (https://golang.org/pkg/io/#ReadWriteCloser)? –

cevap

14

Bu, yapıları oluştururken olduğu gibi yapılabilir.

type BasicDatabase interface { 
    CreateTable(string) error 
    DeleteTable(string) error 
} 

type SpecificDatabase interface { 
    BasicDatabase 
    CreateUserRecord(User) error 
}