gstructs
组件用于方便获取结构体的相关信息。
这是一个偏底层组件,一般业务上很少会用到,在框架、基础库、中间件编写中用到。
使用方式:
import "github.com/gogf/gf/v2/os/gstructs"
接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/os/gstructs
Fields
将输入参数in
的 Pointer
属性的字段以Field
切片的形式返回。Fields(in FieldsInput) ([]Field, error)
func main() {
type User struct {
Id int
Name string `params:"name"`
Pass string `my-tag1:"pass1" my-tag2:"pass2" params:"pass"`
}
var user *User
fields, _ := gstructs.Fields(gstructs.FieldsInput{
Pointer: user,
RecursiveOption: 0,
})
g.Dump(fields)
}
// Output:
[
{
Value: "<int Value>",
Field: {
Name: "Id",
PkgPath: "",
Type: "int",
Tag: "",
Offset: 0,
Index: [
0,
],
Anonymous: false,
},
TagValue: "",
},
{
Value: {},
Field: {
Name: "Name",
PkgPath: "",
Type: "string",
Tag: "params:"name"",
Offset: 8,
Index: [
1,
],
Anonymous: false,
},
TagValue: "",
},
{
Value: {},
Field: {
Name: "Pass",
PkgPath: "",
Type: "string",
Tag: "my-tag1:"pass1" my-tag2:"pass2" params:"pass"",
Offset: 24,
Index: [
2,
],
Anonymous: false,
},
TagValue: "",
},
]
TagMapName
从参数pointer
中检索tag
,并以map[string]string
的形式返回。 pointer
的类型应该是 struct/*struct
。
TagMapName(pointer interface{}, priority []string) (map[string]string, error)
func main() {
type User struct {
Id int
Name string `params:"name"`
Pass string `my-tag1:"pass1" my-tag2:"pass2" params:"pass"`
}
var user User
m, _ := gstructs.TagMapName(user, []string{"params"})
g.Dump(m)
}
// Output:
{
"name": "Name",
"pass": "Pass",
}
CaseCamel说明:CaseCamel将字符串转换为大驼峰形式(首字母大写)。格式:CaseCamel(s string) string示例:func ExampleCase...
Response对象支持文件下载。相关方法:func (r *Response) ServeFile(path string, allowIndex ...bool)func (r *Response) ...
一个简单的模板系统,将模板编译成Python代码。基本用法如下:t = template.Template("html{{ myvalue }}/html")print(t.generat...
你可以在FastAPI应用中自定义几个元数据配置。标题、描述和版本你可以设定:Title:在 OpenAPI 和自动 API 文档用户界面中作为 A...
FastAPI默认会使用JSONResponse返回响应。你可以通过直接返回Response来重载它,参见直接返回响应。但如果你直接返回Response,...
如果在旧迁移中引用了自定义模型字段,则从项目或第三方应用中删除这些字段将导致问题。为了解决这种情况,Django 提供了一些模...
语法Django 模板是使用 Django 模板语言标记的一个文本文档或Python字符串。模板引擎可以识别和解释一些构造。主要是变量和标签...