欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

go語言萬能接口 go語言萬能接口是什么

【接口測試】Go語言進行簡單的接口測試

在正常的測試中,當我們需要進行接口測試時,通常使用接口調(diào)試工具,如postman進行接口測試

創(chuàng)新互聯(lián)是一家專業(yè)提供嵐皋企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、做網(wǎng)站、H5場景定制、小程序制作等業(yè)務(wù)。10年已為嵐皋眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

目前我在嘗試使用Go語言進行接口測試,使用的庫均為Go自帶的庫。

注:當前采用的接口為時事新聞接口,每天可以請求100次,需要的同學,可以自行使用。

為什么我不喜歡Go語言式的接口

所謂Go語言式的接口,就是不用顯示聲明類型T實現(xiàn)了接口I,只要類型T的公開方法完全滿足接口I的要求,就可以把類型T的對象用在需要接口I的地方。這種做法的學名叫做Structural Typing,有人也把它看作是一種靜態(tài)的Duck Typing。除了Go的接口以外,類似的東西也有比如Scala里的Traits等等。有人覺得這個特性很好,但我個人并不喜歡這種做法,所以在這里談?wù)勊娜秉c。當然這跟動態(tài)語言靜態(tài)語言的討論類似,不能簡單粗暴的下一個“好”或“不好”的結(jié)論。

我的觀點:

Go的隱式接口Duck Typing確實不是新技術(shù), 但是在主流靜態(tài)編程語言中支持Duck Typing應(yīng)該是很少的(不清楚目前是否只有Go語言支持).

靜態(tài)類型和動態(tài)類型雖然沒有絕對的好和不好, 但是每個都是有自己的優(yōu)勢的, 沒有哪一個可以包辦一切. 而Go是試圖結(jié)合靜態(tài)類型和動態(tài)類型(interface)各自的優(yōu)勢.

那么就從頭談起:什么是接口。其實通俗的講,接口就是一個協(xié)議,規(guī)定了一組成員,例如.NET里的ICollection接口:

public interface ICollection {

int Count { get; }

object SyncRoot { get; }

bool IsSynchronized { get; }

void CopyTo(Array array, int index);

}

這就是一個協(xié)議的全部了嗎?事實并非如此,其實接口還規(guī)定了每個行為的“特征”。打個比方,這個接口的Count除了需要返回集合內(nèi)元素的數(shù)目以外,還隱含了它需要在O(1)時間內(nèi)返回這個要求。這樣一個使用了ICollection接口的方法才能放心地使用Count屬性來獲取集合大小,才能在知道這些特征的情況下選用正確的算法來編寫程序,而不用擔心帶來性能問題,這才能實現(xiàn)所謂的“面向接口編程”。當然這種“特征”并不但指“性能”上的,例如Count還包含了例如“不修改集合內(nèi)容”這種看似十分自然的隱藏要求,這都是ICollection協(xié)議的一部分。

Golang入門到項目實戰(zhàn) | golang接口

接口像是一個公司里面的領(lǐng)導,他會定義一些通用規(guī)范,只設(shè)計規(guī)范,而不實現(xiàn)規(guī)范。

go語言的接口,是一種新的類型定義,它把所有的具有共性的方法定義在一起,任何其他類型只要實現(xiàn)了這些方法就是實現(xiàn)了這個接口。

語法格式和方法非常類似。

在接口定義中定義,若干個空方法。這些方法都具有通用性。

下面我定義一個USB接口,有讀read和寫write兩個方法,再定義一個電腦Computer和一個手機Mobile來實現(xiàn)這個接口。

USB接口

Computer結(jié)構(gòu)體

Mobile結(jié)構(gòu)體

Computer實現(xiàn)USB接口方法

Mobile實現(xiàn)USB接口方法

測試

運行結(jié)果

下面我們定義一個OpenClose接口,里面有兩個方法open和close,定義個Door結(jié)構(gòu)體,實現(xiàn)其中一個方法。

文章標題:go語言萬能接口 go語言萬能接口是什么
網(wǎng)址分享:http://chinadenli.net/article32/hjospc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作網(wǎng)站策劃動態(tài)網(wǎng)站自適應(yīng)網(wǎng)站用戶體驗商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司