十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
本篇內(nèi)容介紹了“Go語(yǔ)言中裝飾器的用法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
10余年的兩當(dāng)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整兩當(dāng)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“兩當(dāng)網(wǎng)站設(shè)計(jì)”,“兩當(dāng)網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
Go的裝飾器本質(zhì)上允許您包裝現(xiàn)有功能,并添加你自己的自定義功能,它操作的對(duì)象是函數(shù),返回的對(duì)象也是函數(shù)。
1.簡(jiǎn)單的一個(gè)裝飾器例子:
結(jié)果分析:從輸出的結(jié)果能夠看出,調(diào)用了裝飾器之后,函數(shù)testFunc已經(jīng)實(shí)現(xiàn)了,“自己的代碼 + 原來(lái)代碼”的效果。
2.如果我們希望裝飾器裝飾的函數(shù)類(lèi)型不是固定的呢,也就是說(shuō)我們希望裝飾器裝飾的函數(shù)可以是任何函數(shù),這樣我們?cè)撛趺崔k?
答案:采用空interface,因?yàn)镚o語(yǔ)言中空interface是泛型的基礎(chǔ)。
例子如下所示:
結(jié)果分析:Go中空interface的存在,使得泛型的實(shí)現(xiàn)成了可能,實(shí)現(xiàn)一個(gè)裝飾器函數(shù)就可以支持多種類(lèi)型的函數(shù)。通過(guò)測(cè)試結(jié)果可以看出來(lái),這個(gè)功能確實(shí)工作了,而注釋中的1,2,3,4是對(duì)裝飾器實(shí)現(xiàn)的介紹,對(duì)于裝飾器自己的代碼那一部分,你可以按照自己的希望來(lái)定制實(shí)現(xiàn)。
3.如果同一個(gè)函數(shù),我們希望采用不同的裝飾器來(lái)分別裝飾它的話(huà),該怎么辦呢?
最簡(jiǎn)單的做法就是分別實(shí)現(xiàn)多個(gè)裝飾器函數(shù),然后依次順序調(diào)用這些裝飾器函數(shù), 例子如下:
對(duì)于上面的代碼,在裝飾器不是很多的時(shí)候,還可以忍受,等裝飾器很多的時(shí)候,就會(huì)顯得很不好看,為了讓他們變得優(yōu)雅一些,我們優(yōu)化成下面的樣子。
結(jié)果分析:通過(guò)結(jié)果輸出能看出來(lái),兩種方法實(shí)現(xiàn)的效果是一樣的,第二種明顯會(huì)更加優(yōu)雅一些。
“Go語(yǔ)言中裝飾器的用法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!