This commit is contained in:
chai2010
2015-12-14 11:31:28 +08:00
parent 44532b45b5
commit 7b4e9340f8
7 changed files with 82 additions and 82 deletions

View File

@@ -1,6 +1,6 @@
# 第十二章 反射
Go提供了一种机制在运行时更新量和检查它们的值, 用它的方法, 和它支持的在操作, 但是在编译时并不知道这些变量的型. 这种机制被称为反射. 反射也可以让我们将类型本身作第一的值类型处理.
Go提供了一種機製在運行時更新量和檢査它們的值, 調用它的方法, 和它支持的在操作, 但是在編譯時併不知道這些變量的型. 這種機製被稱爲反射. 反射也可以讓我們將類型本身作第一的值類型處理.
在本章, 我们将探讨Go言的反射特性, 看看它可以给语言增加哪些表达力, 以及在两个至关重要的API是如何用反射机制的: 一是 fmt 包提供的字符串格式功能, 另一个是类似 encoding/json 和 encoding/xml 提供的针对特定协议的编解码功能. 对于我们在4.6中看到的 text/template 和 html/template 包, 它们的实现也是依反射技的. 然, 反射是一个复杂的内省技, 而应该随意使用, 因此, 管上面这些包都是用反射技术实现的, 但是它自己的API都有公反射相的接口.
在本章, 我們將探討Go言的反射特性, 看看它可以給語言增加哪些錶達力, 以及在兩箇至關重要的API是如何用反射機製的: 一是 fmt 包提供的字符串格式功能, 另一箇是類似 encoding/json 和 encoding/xml 提供的鍼對特定協議的編解碼功能. 對於我們在4.6中看到的 text/template 和 html/template 包, 它們的實現也是依反射技的. 然, 反射是一箇復雜的內省技, 而應該隨意使用, 因此, 管上麫這些包都是用反射技術實現的, 但是它自己的API都有公反射相的接口.