亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Go 的奇妙旅程:Go 語言接口

標簽:
Go

接口是一组方法的集合,然后我们可以定义一个结构体实现该接口所有方法。也就是说,接口定义了对象的所有方法。
比如说,结构体 phone 可以 call_number 或 send_message。那么如果一个接口声明了 call_number 和 send_message 的方法,而 ipenguin 实现了这两个方法,那么 ipenguin 就实现了该接口。
接口的主要工作是仅提供由方法名称,输入参数和返回类型组成的方法签名集合。我们使用类型(例如 struct 结构体)来声明方法并实现它们。
Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。

/* 定义接口 */
type phone interface {
   call_number
   send_message
}

/* 定义结构体 */
type ipenguin struct {
}

/* 实现接口方法 */
func (ipenguin ipenguin) call_number() call_number() {
    /* 建立通信连接 */
}
...
func (ipenguin ipenguin) send_message() send_message() {
   /* 发送短信 */
}

func main() {
    var p phone

    p = new(ipenguin)
    p.call_number()
}

在上面的例子中,我们定义了一个接口 phone,接口里面有一个方法 call_number() 与 send_message()。然后我们在 main 函数里面定义了一个 p 类型变量,并分别为之赋值为 ipenguin,然后我们调用了 call_number() 方法。
使用接口
接口会在需要传递不同类型的值的函数和方法的情况下非常有用 —— 就比如说接受所有类型的值的 Println 函数。
如果你去翻翻 Println 函数的源代码,那你会看到这个:
func Println(a …interface{}) (n int, err error)
复制代码
这其实就是一种可变函数!
当多个类型实现相同的接口时,我们能够使用相同的代码,非常简单实现兼容!因此,只要我们可以使用接口,我们就应该尽量使用它。

作者:Hoarfroster
链接:https://juejin.cn/post/6953229610708533262
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
數據庫工程師
手記
粉絲
42
獲贊與收藏
204

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消