GoLang:创建一个接受接口的函数(我来自 PHP)

在 PHP 中我可以创建一个接口


interface Hello {

    public function bar();

}

和一些实现它的类


final class Foo implements Hello {

    public function bar() {

        // do something

    }

}


final class Bar implements Hello {

    public function bar() {

        // do something

    }

}

然后,我还可以创建一个接受接口的 NewClass::bar() 方法。


final class NewClass {

    public function bar(Hello $hello) {

        // do something

    }

}

在 Golang 中,我如何做同样的事情?


type humanPlayer struct {

    name string

}


type botPlayer struct {

    name string

}

如何在 golang 中实现相同的模式?


炎炎设计
浏览 158回答 1
1回答

慕桂英3389331

package mainimport (    "fmt")type Namer interface {    Name() string}type humanPlayer struct {    name string}func (h *humanPlayer) Name() string {    return h.name}type botPlayer struct {    name string}func (b *botPlayer) Name() string {    return b.name}func sayName(n Namer) {    fmt.Printf("Hello %s\n", n.Name())}func main() {    human := &humanPlayer{        name: "bob",    }    bot := &botPlayer{        name: "tom",    }    sayName(human)    sayName(bot)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go