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 的...