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