📜  Golang 中的reflect.Tag.Get()函数示例

📅  最后修改于: 2021-10-25 02:13:40             🧑  作者: Mango

Go 语言提供了运行时反射的内置支持实现,并允许程序在反射包的帮助下操作任意类型的对象。 Golang 中的reflect.Tag.Get()函数用于查找标签字符串中与key 关联的值,如果标签中没有这样的key,则返回空字符串。要访问此函数,需要在程序中导入反射包。

下面的例子说明了上述方法在 Golang 中的使用:

示例 1:

func (tag StructTag) Get(key string) string

输出:

// Golang program to illustrate
// reflect.Tag.Get() Function
  
package main
  
import (
    "fmt"
    "reflect"
)
  
type Employee struct {
    ID      string `auto_increment:"true" increment:"1"`
    Name    string `varchar: "255"`
    Surname string `"varchar: "255"`
}
  
// Main function
func main() {
    e := Employee{}
    // c variable represents table columns
    c := reflect.TypeOf(e).Field(0).Tag
    fmt.Printf("%s\n\n", c)
  
    // use of Get method
    g := c.Get("increment")
    fmt.Printf("Get method: %s\n", g)
}

示例 2:

auto_increment:"true" increment:"1"

Get method: 1

输出:

// Golang program to illustrate
// reflect.Tag.Get() Function 
  
package main
  
import (
    "fmt"
    "reflect"
)
  
// Main function 
func main() {
    type tag struct {
        val string `Value_1:"GeeksforGeeks" Value_2:"Best Platform :"`
    }
  
    src := tag {}
    st := reflect.TypeOf(src)
    field := st.Field(0)
      
    // use of Get method
    fmt.Println(field.Tag.Get("Value_2"), field.Tag.Get("Value_1"))
  
}