Categories: GoFrame 教程

GoFrame 工具方法-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("Im Start!
")
 buffer.WriteString(string(p))
 buffer.WriteString("
Im End!
")

 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:
Im Start!
{
    Name:     "a",
    Age:      18,
    Province: "b",
    City:     "c",
}
Im End!

terry

这个人很懒,什么都没有留下~

Share
Published by
terry

Recent Posts

vue:页面注入js修改input值

一般会直接这样写: let z…

60 分钟 ago

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago