1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個贊
Go 不做多態(tài)性。您必須根據(jù)接口和采用這些接口的函數(shù)(而不是方法)重新定義您想要做的事情。
所以想想每個對象需要滿足什么接口,然后你需要在那個接口上工作什么功能。go 標(biāo)準(zhǔn)庫中有很多很棒的例子,例如io.Reader,io.Writer以及對這些起作用的函數(shù),例如io.Copy。
這是我嘗試將您的示例改寫為這種風(fēng)格的嘗試。它沒有多大意義,但希望它會給你一些工作。
package main
import "fmt"
type A struct {
}
type steps interface {
step1()
step2()
}
func (a *A) step1() {
fmt.Println("step1 A")
}
func (a *A) step2() {
fmt.Println("get A")
}
type B struct {
A
}
func (b *B) step2() {
fmt.Println("get B")
}
func step1(f steps) {
f.step1()
f.step2()
}
func main() {
obj := B{}
step1(&obj)
}
- 1 回答
- 0 關(guān)注
- 142 瀏覽
添加回答
舉報