Skip to content

Latest commit

 

History

History
82 lines (52 loc) · 2.13 KB

README_ZH.md

File metadata and controls

82 lines (52 loc) · 2.13 KB

cvt

PkgGoDev Go Report Card Build Status codecov GitHub Mentioned in Awesome Go

一个简单、安全、高效的转换任意数据类型的 Go 语言工具包,支持自定义类型、提取结构体字段和值

帮助文档

https://cvt.shockerli.net

安装

Go >= 1.13

go get -u github.com/shockerli/cvt

使用

中文 | English

支持 error

E 结尾的方法 __E(): 当转换失败时会返回错误

cvt.IntE("12")          // 12, nil
cvt.Float64E("12.34")   // 12.34, nil
cvt.StringE(12.34)      // "12.34", nil
cvt.BoolE("false")      // false, nil

自定义类型、指针类型

自动解引用,并找到基本类型,完全支持自定义类型的转换

type Name string

var name Name = "jioby"

cvt.StringE(name)       // jioby, nil
cvt.StringE(&name)      // jioby, nil

忽略 error

名称不以 E 结尾的方法,如果转换失败,不会返回错误,会返回零值

cvt.Int("12")           // 12(success)
cvt.Int(struct{}{})     // 0(failed)

默认值

如果转换失败,返回默认值

cvt.Int(struct{}{}, 12)         // 12
cvt.Float("hello", 12.34)       // 12.34

更多示例

上千个单元测试用例,覆盖率近100%,所有示例可通过单元测试了解:*_test.go

开源协议

本项目基于 MIT 协议开放源代码。

感谢

JetBrains Logo (Main) logo