« Home

Go 的 interface [tt-000M]

Go 語言的 interface,範例如下

type Abser interface {
        Abs() float64
}

其中的 Abs() float64 可以被改寫成抽象語法 Abs : () -> float64。因此一個 interface AA 有一組與其關聯的一系列簽名 P^\hat P 。並且,對 Go 而言下列的兩個 interface 並沒有差異

type A interface {
        F(C) D
}
type B interface {
        F(C) D
}

因此我們可以更進一步認為 Go 的一個 interface AA 可以完全由其簽名 P^\hat P 替換。