精校:10.2-10.4

This commit is contained in:
Unknwon
2015-08-16 16:52:01 +08:00
parent b0b3812a9d
commit 55ac71730e
6 changed files with 49 additions and 35 deletions

View File

@@ -1,10 +1,11 @@
# 10.4 带标签的结构体
结构体中的字段除了有名字和类型外,还可以有一个可选的标签(tag):它是一个附属于字段的字符串,可以是文档或其他的重要标记。标签的内容不可以在一般的编程中使用,只有包`reflect`能获取它。我们将在下一章(11.10)中深入的探讨`reflect`包,它可以在运行时自省类型、属性和方法,比如:在一个变量上调用` reflect.TypeOf()`可以获取变量的正确类型如果变量是一个结构体类型就可以通过Field来索引结构体的字段然后就可以使用Tag属性。
结构体中的字段除了有名字和类型外,还可以有一个可选的标签tag:它是一个附属于字段的字符串,可以是文档或其他的重要标记。标签的内容不可以在一般的编程中使用,只有包 `reflect` 能获取它。我们将在下一章(第 11.10 节)中深入的探讨 `reflect`包,它可以在运行时自省类型、属性和方法,比如:在一个变量上调用 `reflect.TypeOf()` 可以获取变量的正确类型,如果变量是一个结构体类型,就可以通过 Field 来索引结构体的字段,然后就可以使用 Tag 属性。
Listing 10.7struct_tag.go展示了如何使用它
```go
package main
示例 10.7 struct_tag.go
```go
package main
import (
"fmt"
@@ -29,15 +30,16 @@ func refTag(tt TagType, ix int) {
ixField := ttType.Field(ix)
fmt.Printf("%v\n", ixField.Tag)
}
```
```
输出:
输出:
An important answer
The name of the thing
How much there are
## 链接
- [目录](directory.md)
- 上一节:[10.3 使用自定义包中的结构体](10.3.md)
- 下一节:[10.5 匿名字段和内嵌结构体](10.5.md)
- 上一节:[使用自定义包中的结构体](10.3.md)
- 下一节:[匿名字段和内嵌结构体](10.5.md)