文章目录

废话就不说了直接上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

import (
"fmt"
"reflect" // 这里引入reflect模块
)

type User struct {
Name string "user name" //这引号里面的就是tag
Passwd string "user passsword"
}

func main() {
user := &User{"chronos", "pass"}
s := reflect.TypeOf(user).Elem() //通过反射获取type定义
for i := 0; i < s.NumField(); i++ {
fmt.Println(s.Field(i).Tag) //将tag输出出来
}
}

通过获取 tag 我们可以做到对 struct 进行扩展定义,像 qbs 里面就使用了这种方法。

文章目录