Go 語言 反射

2023-03-14 16:46 更新

原文鏈接:https://gopl-zh.github.io/ch12/ch12.html


第12章 反射

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)的接口。



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)