工具方法-gutil
基本介绍
gutil组件封装了一些开发中常用的工具方法。
使用方式:
import "github.com/gogf/gf/v2/util/gutil"
接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/util/gutil
常用方法
Dump
-
说明:
Dump将values以更好的可读性的方式输出在标准输出中。 -
格式:
Dump(values ...interface{})
- 示例:
type User struct {
Name string
Age int
}
type Location struct {
Province string
City string
}
type UserInfo struct {
U User
L Location
}
func main() {
userList := make([]UserInfo, 0)
userList = append(userList, UserInfo{
U: User{
Name: "郭强",
Age: 18,
},
L: Location{
Province: "四川",
City: "成都",
},
})
userList = append(userList, UserInfo{
U: User{
Name: "黄骞",
Age: 18,
},
L: Location{
Province: "江苏",
City: "南京",
},
})
gutil.Dump(userList)
}
// Output:
[
{
U: {
Name: "郭强",
Age: 18,
},
L: {
Province: "四川",
City: "成都",
},
},
{
U: {
Name: "黄骞",
Age: 18,
},
L: {
Province: "江苏",
City: "南京",
},
},
]
DumpWithType
-
说明:
DumpWithType和Dump类似,但是多了类型信息。 -
格式:
DumpWithType(values ...interface{})
- 示例:
type User struct {
Name string
Age int
}
type Location struct {
Province string
City string
}
type UserInfo struct {
U User
L Location
}
func main() {
userList := make([]UserInfo, 0)
userList = append(userList, UserInfo{
U: User{
Name: "郭强",
Age: 18,
},
L: Location{
Province: "四川",
City: "成都",
},
})
userList = append(userList, UserInfo{
U: User{
Name: "黄骞",
Age: 18,
},
L: Location{
Province: "江苏",
City: "南京",
},
})
gutil.DumpWithType(userList)
}
// Output:
[]main.UserInfo(2) [
main.UserInfo(2) {
U: main.User(2) {
Name: string(6) "郭强",
Age: int(18),
},
L: main.Location(2) {
Province: string(6) "四川",
City: string(6) "成都",
},
},
main.UserInfo(2) {
U: main.User(2) {
Name: string(6) "黄骞",
Age: int(18),
},
L: main.Location(2) {
Province: string(6) "江苏",
City: string(6) "南京",
},
},
]
DumpTo
-
说明:
DumpTo将value以自定义的输出形式写入到write中。 -
格式:
DumpTo(writer io.Writer, value interface{}, option DumpOption)
-
示例:
-
``` package main
import ( "bytes" "fmt" "github.com/gogf/gf/v2/util/gutil" "io" )
type UserInfo struct { Name string Age int Province string City string }
type DumpWriter struct { Content string }
func (d *DumpWriter) Write(p []byte) (n int, err error) { buffer := bytes.NewBuffer(nil) buffer.WriteString("I'm Start!\n") buffer.WriteString(string(p)) buffer.WriteString("\nI'm End!\n")
d.Content = buffer.String()
return buffer.Len(), nil
}
func main() { u := UserInfo{ "a", 18, "b", "c", }
var dw io.Writer = &DumpWriter{}
gutil.DumpTo(dw, u, gutil.DumpOption{})
fmt.Println(dw.(*DumpWriter).Content)
}
// Output: I'm Start! { Name: "a", Age: 18, Province: "b", City: "c", } I'm End! ```
