最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言基礎(chǔ)go接口用法示例詳解

 更新時間:2021年11月17日 08:50:48   作者:楓少文  
這篇文章主要為大家介紹了Go語言基礎(chǔ)關(guān)于go接口的用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,在日升職加薪

在這里插入圖片描述

概述

Go 語言中的接口就是方法簽名的集合,接口只有聲明,沒有實現(xiàn),不包含變量。

語法

定義接口

type [接口名] interface {
    方法名1(參數(shù)列表) 返回值列表   
    方法名2(參數(shù)列表) 返回值列表
    ...
}

例子

type Isay interface{
  sayHi()
}

實現(xiàn)接口

例子

//定義接口的實現(xiàn)類
type Chinese struct{}
//實現(xiàn)接口
func (_ *Chinese) sayHi() {
  fmt.Println("中國人說嗨")
}
//中國人
type Chinese struct{}
//美國人
type Americans struct{}
func (this *Chinese) sayHi()  {
  fmt.Println("中國人說嗨")
}
func (this Americans) sayHi()  {
  fmt.Println("美國人說hi")
}
//調(diào)用
&Chinese{}.sayHi()
Americans{}.sayHi()

空接口

在Go語言中,所有其它數(shù)據(jù)類型都實現(xiàn)了空接口。

interface{}
var v1 interface{} = 1
var v2 interface{} = "abc"
var v3 interface{} = struct{ X int }{1}

如果函數(shù)打算接收任何數(shù)據(jù)類型,則可以將參考聲明為interface{}。最典型的例子就是標(biāo)準(zhǔn)庫fmt包中的Print和Fprint系列的函數(shù):

func Fprint(w io.Writer, a ...interface{}) (n int, err error)
func Fprintf(w io.Writer, format string, a ...interface{})
func Fprintln(w io.Writer, a ...interface{})
func Print(a ...interface{}) (n int, err error)
func Printf(format string, a ...interface{})
func Println(a ...interface{}) (n int, err error)

接口的組合

一個接口中包含一個或多個接口

//說話
type Isay interface{
  sayHi()
}
//工作
type Iwork interface{
  work()
}

//定義一個接口,組合了上述兩個接口
type IPersion interface{
  Isay
  Iwork
}

type Chinese struct{}

func (_ Chinese) sayHi() {
  fmt.Println("中國人說中國話")
}

func (_ Chinese) work() {
	fmt.Println("中國人在田里工作")
}

//上述接口等價于:
type IPersion2 interface {
	sayHi()
	work()
}

總結(jié)

interface類型默認是一個指針使用空接口可以保存任意值不能比較空接口中的動態(tài)值定義了一個接口,這些方法必須都被實現(xiàn),這樣編譯并使用

示例

package main
import "fmt"
//中國話
type Isay interface {
	sayHi()
}
//工作
type Iwork interface {
	work()
}
//中國人
type Chinese struct{}
//美國人
type Americans struct{}
func (this *Chinese) sayHi() {
	fmt.Println("中國人說嗨")
}
func (this Americans) sayHi() {
	fmt.Println("美國人說hi")
}
type IPersion interface {
	Isay
	Iwork
}
func (_ Chinese) work() {
	fmt.Println("中國人在田里工作")
}
func main() {
	var chinese Isay = &Chinese{}
	chinese.sayHi()
	Americans{}.sayHi()
	//接口組合
	var ipersion IPersion = &Chinese{}
	ipersion.sayHi()
	ipersion.work()
}

以上就是Go語言基礎(chǔ)go接口用法示例詳解的詳細內(nèi)容,更多關(guān)于Go 語言基礎(chǔ)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • go開發(fā)中引用靜態(tài)庫.a文件的方法

    go開發(fā)中引用靜態(tài)庫.a文件的方法

    這篇文章主要介紹了go開發(fā)中引用靜態(tài)庫.a文件的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Golang安全讀寫共享變量的方式詳解

    Golang安全讀寫共享變量的方式詳解

    互斥鎖(Mutex)是一種常用的同步原語,用于防止多個協(xié)程同時訪問共享資源,這篇文章主要介紹了Golang安全讀寫共享變量的方式,需要的朋友可以參考下
    2024-05-05
  • 利用Go語言實現(xiàn)二叉搜索樹

    利用Go語言實現(xiàn)二叉搜索樹

    二叉樹是一種常見并且非常重要的數(shù)據(jù)結(jié)構(gòu),在很多項目中都能看到二叉樹的身影,當(dāng)然它也有很多變種,本文要介紹的是二叉搜索樹的實現(xiàn),希望對大家有所幫助
    2023-07-07
  • 一文帶你搞懂Go如何讀寫Excel文件

    一文帶你搞懂Go如何讀寫Excel文件

    Excelize是一個用純Go語言編寫的庫,提供了一組函數(shù),可以對XLAM?/?XLSM?/?XLSX?/?XLTM?/?XLTX文件進行讀寫。支持讀寫由Microsoft?Excel?2007及以后版本生成的電子表格文檔。本文就將用它實現(xiàn)讀寫Excel文件操作,感興趣的可以學(xué)習(xí)一下
    2022-11-11
  • Go位集合相關(guān)操作bitset庫安裝使用

    Go位集合相關(guān)操作bitset庫安裝使用

    這篇文章主要為大家介紹了Go位集合相關(guān)操作bitset庫安裝使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Go語言網(wǎng)站使用異步編程和Goroutine提高Web的性能

    Go語言網(wǎng)站使用異步編程和Goroutine提高Web的性能

    作為一門現(xiàn)代化編程語言,Go語言提供了強大的異步編程能力,使得程序員可以以更高效的方式處理并發(fā)任務(wù),在Go語言中,使用Goroutine在單個進程中實現(xiàn)多任務(wù)并行處理,以及如何使用協(xié)程池來進一步提高Web服務(wù)器的處理能力,
    2024-01-01
  • 提高golang源碼閱讀效率的六個高級技巧

    提高golang源碼閱讀效率的六個高級技巧

    隨著業(yè)務(wù)的發(fā)展,自己對代碼的審美的改變,我們不斷的迭代這些代碼,代碼量可以說是與日俱增,代碼的某些結(jié)構(gòu)也會發(fā)生大大小的改變,這些都要求我們在閱讀代碼的時候,需要更快的效率和技巧
    2024-01-01
  • Go語言共享內(nèi)存讀寫實例分析

    Go語言共享內(nèi)存讀寫實例分析

    這篇文章主要介紹了Go語言共享內(nèi)存讀寫方法,實例分析了共享內(nèi)存的原理與讀寫技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Golang中常見加密算法的總結(jié)

    Golang中常見加密算法的總結(jié)

    這篇文章主要為大家詳細介紹了Golang中常見的一些加密算法的實現(xiàn),文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • Go批量操作excel導(dǎo)入到mongodb的技巧

    Go批量操作excel導(dǎo)入到mongodb的技巧

    這篇文章主要介紹了Go批量操作excel導(dǎo)入到mongo,包括選擇命令行包,讀取配置連接數(shù)據(jù)庫的方法,本文示例代碼相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2022-03-03

最新評論

于田县| 称多县| 咸丰县| 阿合奇县| 房山区| 抚顺市| 湖南省| 蒙阴县| 上杭县| 襄城县| 桐柏县| 通山县| 洛宁县| 桐乡市| 平和县| 伊金霍洛旗| 楚雄市| 兴义市| 安顺市| 云安县| 灵宝市| 霸州市| 灵武市| 津市市| 河东区| 东阿县| 沈阳市| 泸西县| 南昌市| 桐梓县| 宜兴市| 罗田县| 康保县| 华安县| 双柏县| 三河市| 金溪县| 襄垣县| 延寿县| 九龙县| 二手房|