GoFrame 是一个基于 Go 语言的 Web 开发框架,它提供了一系列的功能,可以帮助开发者快速构建出高性能、高可用的 Web 应用。GoFrame 是一个开源的项目,它是由 Go 语言社区中的一群志愿者们共同开发而成,旨在为 Go 语言开发者提供一个简单易用、功能完善、性能优越的 Web 开发框架。
GoFrame 的文档是该项目最重要的部分之一,它包含了 GoFrame 的所有相关信息,包括安装、使用、API 文档等。文档中还包含了很多有用的教程和代码样例,帮助开发者快速上手 GoFrame。
GoFrame 的文档分为三大部分: 1. 介绍部分:介绍 GoFrame 的特性、原理和优势。 2. 教程部分:详细介绍如何使用 GoFrame 来开发 Web 应用。 3. API 部分:详尽地介绍了 GoFrame 中所有 API 的使用方法。
此外,GoFrame 还有一个十分实用的命令行工具 gof (Go Frame Command Line Tool ) ,它可以帮助开发者快速生成项目代码、运行测试代码、生成 API 文档和进行其他常见的工作。
gof -h // 查看 gof 工具使用方法 gof new project // 创建新项目 gof run test // 运行测试代码 gof gen doc // 生成 API 文档
NewOption(option Option) error
func ExampleNewOption() {
err := gerror.NewOption(gerror.Option{
Text: "this feature is disabled in this storage",
Code: gcode.CodeNotSupported,
})
}
通过以上示例我们可以看到,通过%+v
的打印格式可以打印出完整的堆栈信息,当然gerror.Error
对象支持多种fmt格式:
格式符 | 输出内容 |
%v ,%s |
打印所有的层级错误信息,构成完成的字符串返回,多个层级使用: 拼接 |
%-v ,%-s |
打印当前层级的错误信息,返回字符串 |
%+s |
打印完整的堆栈信息列表 |
%+v |
打印所有的层级错误信息字符串,以及完整的堆栈信息,等同于%sn%+s |
使用示例:
package main
import (
"errors"
"fmt"
"github.com/gogf/gf/v2/errors/gerror"
)
func main() {
var err error
err = errors.New("sql error")
err = gerror.Wrap(err, "adding failed")
err = gerror.Wrap(err, "api calling failed")
fmt.Printf(" %%s: %sn", err)
fmt.Printf("%%-s: %-sn", err)
fmt.Println("%+s: ")
fmt.Printf("%+sn", err)
}
// Output:
// %s: api calling failed: adding failed: sql error
// %-s: api calling failed
// %+s:
// 1. api calling failed
// 1). main.main
// /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/other/test.go:14
// 2. adding failed
// 1). main.main
// /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/other/test.go:13
// 3. sql error
glog
日志管理模块天然支持对gerror
错误堆栈打印支持,这种支持不是强耦合性的,而是通过fmt
格式化打印接口支持的。
使用示例:
package main
import (
"errors"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/errors/gerror"
)
func main() {
var err error
err = errors.New("sql error")
err = gerror.Wrap(err, "adding failed")
err = gerror.Wrap(err, "api calling failed")
g.Log().Printf("%+v", err)
}
// Output:
// 2020-10-17 15:22:26.793 api calling failed: adding failed: sql error
// 1. api calling failed
// 1). main.main
// /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/other/test.go:14
// 2. adding failed
// 1). main.main
// /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/other/test.go:13
// 3. sql error
虽然gvalid已经内置了常见的数十种校验规则,但是在部分业务场景下我们需要自定义校验规则,特别是一些可以重复使用的业务相...
基本类型转换性能基准测试:john@john-B85M:~/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/util/gconv$ go test *.go -bench...
Context指的是标准库的context.Context,是一个接口对象,常用于异步IO控制以及上下文流程变量的传递。本文将要介绍...
基本介绍这个问题由于大家问得比较多,因此单独开了一个章节详细介绍一下ORM中的时区处理是怎么一回事。我们这里以MySQL...
gdb的数据记录结果(Value)支持非常灵活的类型转换,并内置支持常用的数十种数据类型的转换。Value类型是*gvar.V...
模板引擎特点简单、易用、强大;支持多模板目录搜索;支持layout模板设计;支持模板视图对象单例模式;与配置管理模块原生集...