Golang 接口

Posted kaituorensheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang 接口相关的知识,希望对你有一定的参考价值。

定义

把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口

举例

接口Phone, 有一个函数call

type Phone interface {
    call()
}

定义2个strct

type NokiaPhone struct {
}
type Samsung struct {
}

实现接口中的call()函数

func (nokiaPhone NokiaPhone) call() {
    fmt.Println("I‘m NokiaPhone, call.....")
}



func (samsung Samsung) call() {
    fmt.Println("I‘m Sumsung, call........")
}

测试

    var phone Phone

    phone = new(NokiaPhone)
    fmt.Printf("%p, %T", phone, phone)  // %p 输出指针地址,%T 输出类型
    phone.call()

    phone = new(Samsung)
    phone.call()

输出

0x121bf38, *basicTest.NokiaPhone
Im NokiaPhone, call.....
Im Sumsung, call........

注意:new 得到的是个指针

以上是关于Golang 接口的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 - Golang 实现简单的 Web 服务器

代码片段 - Golang 实现集合操作

json [Golang] golang #golang #snippets中有用的片段

java golang oop 2文章片段

golang 去练习片段

golang 转到片段以观察运行时行为和内存分配