您的位置:58脚本 > goframe教程 GoFrame 工具方法-gutil

goframe教程 GoFrame 工具方法-gutil

2023-03-18 16:32 GoFrame教程

goframe教程 GoFrame 工具方法-gutil

goframe教程

GoFrame 是一个开源的、高性能的 Web 开发框架,它是基于 Go 语言编写的,由国内开发者维护。GoFrame 提供了一套完整的解决方案,可以帮助开发者快速构建出高性能、高可用性的 Web 应用。GoFrame 的特点是简单易用、高性能、易扩展,它也是目前国内最流行的 Go 语言 Web 框架之一。

GoFrame 的教程主要分为三部分:入门教程、进阶教程和实战教程。入门教程介绍了 GoFrame 的基本使用方法,包括如何安装 GoFrame 、如何创建应用、如何使用路由、如何使用中间件以及如何使用日志功能。进阶教程介绍了 GoFrame 的进阶功能,包括如何使用 ORM 、如何使用 Redis 、如何使用 MongoDB 以及如何使用 RabbitMQ 等。实战教程则是通过一个实战项目来帮助开发者学习 GoFrame ,包含了前端开发、后端开发以及部署上线三个部分。

package main

import (
	"github.com/gogf/gf/frame/g"
)

func main() {
	// 初始化应用对象并启动应用服务(HTTP/HTTPS/TCP/UDP/GRPC)
	g.Server().Run()

	// 停止应用服务并释放资源(会释放所有已波波外郎的资源)
	defer g.Server().Shutdown()

	// 运行应该逻辑代码...

	// 阻塞当前 goroutine (不会释放已波波外郎的资源)
	select {}  // or g.Wait() or g.Cron().Run() or g.Tick().Run()... etc.  // 非必要代码   // 非必要代码   // 非必要代码   // 非必要代

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("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!


阅读全文
以上是58脚本为你收集整理的goframe教程 GoFrame 工具方法-gutil全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS