Skip to content

Latest commit

 

History

History
139 lines (100 loc) · 3.97 KB

README.zh.md

File metadata and controls

139 lines (100 loc) · 3.97 KB

rese

rese 简化 Go 中的错误处理,使您可以直接使用结果而无需检查错误。

比如,在Go中比较常见的错误处理方式是这样的:

num, err := run()
if err != nil {
    panic(err)
}

ans, err := run2()
if err != nil {
    panic(err)
}

res := num + ans
fmt.Println(res)

简化逻辑(使用 rese 工具):

res := rese.V1(run()) + rese.V1(run2())
fmt.Println(res)

rese 代表 res(结果)+ err(错误)。

English README

English documentation


示例

示例 1: 简单的错误和结果检查,使用 V1

package main

import (
	"fmt"
	"github.com/yyle88/rese"
)

func run() (string, error) {
	return "Hello, World!", nil
}

func main() {
	// 使用 V1 来检查错误并获取结果
	result := rese.V1(run())
	fmt.Println(result) // 输出: Hello, World!
}

示例 2: 确保指针非 nil,使用 P1

package main

import (
	"fmt"
	"github.com/yyle88/rese"
)

func getSomething() (*int64, error) {
	v := int64(42)
	return &v, nil
}

func main() {
	// 使用 P1 来检查错误并确保指针非 `nil`
	ptr := rese.P1(getSomething())
	fmt.Println(*ptr) // 输出: 42
}

示例 3: 检查零值,使用 C1

package main

import (
	"fmt"
	"github.com/yyle88/rese"
)

func getInt() (int, error) {
	return 20, nil
}

func main() {
	// 使用 C1 来检查错误并确保非零值
	num := rese.C1(getInt())
	fmt.Println("Received:", num) // 输出: 20
}

安装

go get github.com/yyle88/rese

函数

函数 作用 返回值
V0(err error) 检查错误,如果错误不为 nil 则触发 panic。没有返回值。
V1[T1 any](v1 T1, err error) T1 检查错误,如果没有错误,返回 v1 返回类型为 T1v1
V2[T1, T2 any](v1 T1, v2 T2, err error) (T1, T2) 检查错误,如果没有错误,返回 v1v2 返回类型为 T1v1 和 类型为 T2v2
P0(err error) 检查错误,如果错误不为 nil 则触发 panic。没有返回值。
P1[T1 any](v1 *T1, err error) *T1 检查错误,检查 v1 是否为非 nil,并返回 v1 返回类型为 T1v1 的指针
P2[T1, T2 any](v1 *T1, v2 *T2, err error) (*T1, *T2) 检查错误,检查 v1v2 是否为非 nil,并返回 v1v2 返回类型为 T1T2v1v2 的指针
C0(err error) 检查错误,如果错误不为 nil 则触发 panic。没有返回值。
C1[T1 comparable](v1 T1, err error) T1 检查错误,检查 v1 是否为零值,如果不是零值,返回 v1 返回类型为 T1v1
C2[T1, T2 comparable](v1 T1, v2 T2, err error) (T1, T2) 检查错误,检查 v1v2 是否为零值,如果不是零值,返回 v1v2 返回类型为 T1v1 和 类型为 T2v2

许可协议

此项目采用 MIT 许可证,详情请参阅 LICENSE 文件。


贡献与支持

欢迎通过提交 pull request 或报告问题来贡献此项目。

如果你觉得这个包对你有帮助,请在 GitHub 上给个 ⭐,感谢支持!!!

感谢你的支持!

祝编程愉快! 🎉