Introduction
Mainly used for embedding into user-defined structs, and through the form of tags to attach custom tag content (metadata) to the struct of the gmeta
package, and dynamically retrieve these custom tag contents at runtime through specific methods.
Usage:
import "github.com/gogf/gf/v2/util/gmeta"
API Documentation:
https://pkg.go.dev/github.com/gogf/gf/v2/util/gmeta
Method List:
func Data(object interface{}) map[string]interface{}
func Get(object interface{}, key string) *gvar.Var
Usage Example
Data
Method
The Data
method is used to obtain the metadata tags of a specified struct
object and return them as a map
.
package main
import (
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/gmeta"
)
func main() {
type User struct {
g.Meta `orm:"user" db:"mysql"`
Id int
Name string
}
g.Dump(gmeta.Data(User{}))
}
tip
Most of the time, in struct definitions, we use the alias g.Meta
for gmeta.Meta
.
After execution, the terminal outputs:
{
"db": "mysql",
"orm": "user"
}
Get
Method
The Get
method is used to retrieve metadata tag information of a specified name from a specified struct
object.
package main
import (
"fmt"
"github.com/gogf/gf/v2/util/gmeta"
)
func main() {
type User struct {
g.Meta `orm:"user" db:"mysql"`
Id int
Name string
}
user := User{}
fmt.Println(gmeta.Get(user, "orm").String())
fmt.Println(gmeta.Get(user, "db").String())
}
After execution, the terminal outputs:
user
mysql