Golang 基礎系列十六 Go 語言介面

2021-09-24 12:59:42 字數 2650 閱讀 8580

go 語言中的介面就是方法簽名的集合,介面只有宣告,沒有實現,不包含變數。

定義介面

type

[介面名]

inte***ce

例子

type isay inte***ce

實現介面

例子

//定義介面的實現類

type chinese struct

//實現介面

func(_

*chinese)

sayhi()

//中國人

type chinese struct

//美國人

type americans struct

func

(this *chinese)

sayhi()

func

(this americans)

sayhi()

//呼叫

&chinese

.sayhi()

americans

.sayhi

()

空介面

在go語言中,所有其它資料型別都實現了空介面。

inte***ce

var v1 inte***ce=1

var v2 inte***ce

="abc"

var v3 inte***ce

=struct

func

fprint

(w io.writer, a ...

inte***ce

)(n int

, err error

)func

fprintf

(w io.writer, format string

, a ...

inte***ce

)func

fprintln

(w io.writer, a ...

inte***ce

)func

print

(a ...

inte***ce

)(n int

, err error

)func

printf

(format string

, a ...

inte***ce

)func

println

(a ...

inte***ce

)(n int

, err error

)

介面的組合

乙個介面中包含乙個或多個介面

//說話

type isay inte***ce

//工作

type iwork inte***ce

//定義乙個介面,組合了上述兩個介面

type ipersion inte***ce

type chinese struct

func

(_ chinese)

sayhi()

func

(_ chinese)

work()

//上述介面等價於:

type ipersion2 inte***ce

inte***ce型別預設是乙個指標

使用空介面可以儲存任意值

不能比較空介面中的動態值

定義了乙個介面,這些方法必須都被實現,這樣編譯並使用

package main

import

"fmt"

//中國話

type isay inte***ce

//工作

type iwork inte***ce

//中國人

type chinese struct

//美國人

type americans struct

func

(this *chinese)

sayhi()

func

(this americans)

sayhi()

type ipersion inte***ce

func

(_ chinese)

work()

func

main()

chinese.

sayhi()

americans

.sayhi()

//介面組合

var ipersion ipersion =

&chinese

ipersion.

sayhi()

ipersion.

work()

}

Golang 基礎系列十九 Go語言單元測試

格式 func test t testing.t package cal func add num1,num2 int int package cal func mul num1,num2 int int add test.go package cal import testing func tes...

Go語言基礎(十六) Go語言檔案操作

package main import fmt os bufio io ioutil 錯誤處理方法 func handle why string,e error func main handle 檔案讀取失敗!err fmt.println str fmt.println 檔案讀取完畢!讀檔案方式二...

Golang 入門系列(一)Go環境搭建

go語言的優劣,這裡就不介紹了,下面直接講go 的安裝 安裝go 的時候,安裝程式會自動把相關目錄寫到系統環境。但是如果是zip 的安裝,需要自己手動新增。主要配置以下幾個 當環境變數都配置完成之後,go 就已經安裝完畢了。開啟命令列,執行 go 命令,就可以看到如下的提示了。gopath go 的...