W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
原文鏈接:https://gopl-zh.github.io/ch12/ch12.html
Go語言提供了一種機(jī)制,能夠在運(yùn)行時(shí)更新變量和檢查它們的值、調(diào)用它們的方法和它們支持的內(nèi)在操作,而不需要在編譯時(shí)就知道這些變量的具體類型。這種機(jī)制被稱為反射。反射也可以讓我們將類型本身作為第一類的值類型處理。
在本章,我們將探討Go語言的反射特性,看看它可以給語言增加哪些表達(dá)力,以及在兩個(gè)至關(guān)重要的API是如何使用反射機(jī)制的:一個(gè)是fmt包提供的字符串格式化功能,另一個(gè)是類似encoding/json和encoding/xml提供的針對特定協(xié)議的編解碼功能。對于我們在4.6節(jié)中看到過的text/template和html/template包,它們的實(shí)現(xiàn)也是依賴反射技術(shù)的。然后,反射是一個(gè)復(fù)雜的內(nèi)省技術(shù),不應(yīng)該隨意使用,因此,盡管上面這些包內(nèi)部都是用反射技術(shù)實(shí)現(xiàn)的,但是它們自己的API都沒有公開反射相關(guān)的接口。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: