91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言中裝飾器的用法

發布時間:2021-07-10 14:54:20 來源:億速云 閱讀:237 作者:chen 欄目:大數據

本篇內容介紹了“Go語言中裝飾器的用法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Go的裝飾器本質上允許您包裝現有功能,并添加你自己的自定義功能,它操作的對象是函數,返回的對象也是函數。
1.簡單的一個裝飾器例子:

Go語言中裝飾器的用法

結果分析:從輸出的結果能夠看出,調用了裝飾器之后,函數testFunc已經實現了,“自己的代碼 + 原來代碼”的效果。

2.如果我們希望裝飾器裝飾的函數類型不是固定的呢,也就是說我們希望裝飾器裝飾的函數可以是任何函數,這樣我們該怎么辦?

答案:采用空interface,因為Go語言中空interface是泛型的基礎。

例子如下所示:

Go語言中裝飾器的用法

結果分析:Go中空interface的存在,使得泛型的實現成了可能,實現一個裝飾器函數就可以支持多種類型的函數。通過測試結果可以看出來,這個功能確實工作了,而注釋中的1,2,3,4是對裝飾器實現的介紹,對于裝飾器自己的代碼那一部分,你可以按照自己的希望來定制實現。

3.如果同一個函數,我們希望采用不同的裝飾器來分別裝飾它的話,該怎么辦呢?

最簡單的做法就是分別實現多個裝飾器函數,然后依次順序調用這些裝飾器函數, 例子如下:

Go語言中裝飾器的用法

對于上面的代碼,在裝飾器不是很多的時候,還可以忍受,等裝飾器很多的時候,就會顯得很不好看,為了讓他們變得優雅一些,我們優化成下面的樣子。

Go語言中裝飾器的用法

結果分析:通過結果輸出能看出來,兩種方法實現的效果是一樣的,第二種明顯會更加優雅一些。

“Go語言中裝飾器的用法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兖州市| 丹江口市| 东乌珠穆沁旗| 广昌县| 永福县| 扬州市| 鸡泽县| 老河口市| 新乡县| 台南市| 嘉善县| 鄯善县| 五莲县| 仁寿县| 巨鹿县| 依兰县| 招远市| 濮阳市| 安陆市| 卢氏县| 梁平县| 乐至县| 东兴市| 灌南县| 涞水县| 水富县| 绥化市| 丰台区| 冕宁县| 栖霞市| 高台县| 桑植县| 油尖旺区| 嘉鱼县| 阜康市| 乐至县| 七台河市| 临泽县| 尚义县| 泸溪县| 攀枝花市|