亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

golang struct 實(shí)現(xiàn) interface的方法

 更新時(shí)間:2018年07月19日 15:05:37   作者:sanerersan  
這篇文章主要介紹了golang struct 實(shí)現(xiàn) interface的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

golang中,一般strcut包含 interface類型后,struct類型都需要實(shí)現(xiàn) interface導(dǎo)出的接口,從而成為相應(yīng)的 interface接口類。

實(shí)際上,struct包含interface之后,并不需要實(shí)現(xiàn)interface的接口,也能成為 interface接口類。

代碼如下:

type newEr interface {  

  New()

}

type testInterface interface {  

  newEr  

  Done() <-chan struct{}

}

type kkTest struct {  

  testInterface

}

func NewTest() newEr {  

  return kkTest{}

}

func main() {  

  kk := NewTest()  

  i,ok := kk.(testInterface)  

  fmt.Println(i,ok)  

  ch := i.Done()  

  fmt.Println(ch)

}

其中  i,ok := kk.(testInterface)  測(cè)試成功,也就是說 kkTest  已經(jīng)是 testInterface 接口類,但是后續(xù) ch := i.Done()    引發(fā) panic,這個(gè)也是預(yù)料之內(nèi)的。

相關(guān)的應(yīng)用可以看 context包中的實(shí)現(xiàn),valueCtx部分實(shí)現(xiàn)了 Context 接口函數(shù),對(duì)其不需要的函數(shù)沒有實(shí)現(xiàn),如果調(diào)用了這些未實(shí)現(xiàn)的函數(shù)就會(huì)導(dǎo)致 panic。這樣在程序排錯(cuò)其實(shí)是很有好處的,因?yàn)檎{(diào)用到這些接口,說明代碼其實(shí)已經(jīng)寫錯(cuò)了。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Golang 實(shí)現(xiàn) Redis系列(六)如何實(shí)現(xiàn) pipeline 模式的 redis 客戶端

    Golang 實(shí)現(xiàn) Redis系列(六)如何實(shí)現(xiàn) pipeline 模式的 redis 客戶端

    pipeline 模式的 redis 客戶端需要有兩個(gè)后臺(tái)協(xié)程負(fù)責(zé) tcp 通信,調(diào)用方通過 channel 向后臺(tái)協(xié)程發(fā)送指令,并阻塞等待直到收到響應(yīng),本文是使用 golang 實(shí)現(xiàn) redis 系列的第六篇, 將介紹如何實(shí)現(xiàn)一個(gè) Pipeline 模式的 Redis 客戶端。
    2021-07-07
  • Golang測(cè)試框架goconvey進(jìn)行單元測(cè)試流程介紹

    Golang測(cè)試框架goconvey進(jìn)行單元測(cè)試流程介紹

    goconvey是一款針對(duì)Golang的測(cè)試框架,可以管理和運(yùn)行測(cè)試用例,同時(shí)提供了豐富的斷言函數(shù),并支持很多Web界面特性,這篇文章主要介紹了使用goconvey進(jìn)行單元測(cè)試流程,感興趣的同學(xué)可以參考下文
    2023-05-05
  • go 生成器模式的具體使用

    go 生成器模式的具體使用

    生成器是一種創(chuàng)建型設(shè)計(jì)模式,使你能夠分步驟創(chuàng)建復(fù)雜對(duì)象,本文主要介紹了go生成器模式的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Go語言實(shí)現(xiàn)Snowflake雪花算法

    Go語言實(shí)現(xiàn)Snowflake雪花算法

    雪花算法產(chǎn)生的背景當(dāng)然是twitter高并發(fā)環(huán)境下對(duì)唯一ID生成的需求,得益于twitter內(nèi)部牛的技術(shù),雪花算法能夠流傳于至今并且被廣泛使用,本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-06-06
  • Golang中的http.Server源碼深入分析

    Golang中的http.Server源碼深入分析

    這篇文章主要介紹了Golang中的http.Server源碼,實(shí)現(xiàn)一個(gè)http.Server非常容易,只需要短短幾行代碼,同時(shí)有了協(xié)程的加持,Go實(shí)現(xiàn)的http.Server能夠取得非常優(yōu)秀的性能,下面我們來分析看看http.Server的源碼
    2023-05-05
  • 用Go語言編寫一個(gè)簡單的分布式系統(tǒng)

    用Go語言編寫一個(gè)簡單的分布式系統(tǒng)

    這篇文章主要介紹了用Go語言編寫一個(gè)簡單的分布式系統(tǒng),文中的代碼示例講解的非常詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • 一文帶你了解Go中跟蹤函數(shù)調(diào)用鏈的實(shí)現(xiàn)

    一文帶你了解Go中跟蹤函數(shù)調(diào)用鏈的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了go如何實(shí)現(xiàn)一個(gè)自動(dòng)注入跟蹤代碼,并輸出有層次感的函數(shù)調(diào)用鏈跟蹤命令行工具,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • Go語言LeetCode題解1046最后一塊石頭的重量

    Go語言LeetCode題解1046最后一塊石頭的重量

    這篇文章主要為大家介紹了Go語言LeetCode題解1046最后一塊石頭的重量,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • go語言實(shí)現(xiàn)二叉樹的序例化與反序列化

    go語言實(shí)現(xiàn)二叉樹的序例化與反序列化

    這篇文章主要介紹了go語言實(shí)現(xiàn)二叉樹的序例化與反序列化,文章圍繞主題展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • Golang標(biāo)準(zhǔn)庫syscall詳解(什么是系統(tǒng)調(diào)用)

    Golang標(biāo)準(zhǔn)庫syscall詳解(什么是系統(tǒng)調(diào)用)

    最近在研究go語言,發(fā)現(xiàn)go語言系統(tǒng)調(diào)用源碼只有調(diào)用函數(shù)的定義,今天通過本文給大家分享Golang標(biāo)準(zhǔn)庫syscall詳解及什么是系統(tǒng)調(diào)用,感興趣的朋友一起看看吧
    2021-05-05

最新評(píng)論