shockerli / cvt

Easy and safe convert any value to another type in Go. (Go 数据类型安全转换)

Home Page:https://cvt.shockerli.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cvt

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

Simple, safe conversion of any type, including indirect/custom types.

Documents

https://cvt.shockerli.net

Install

Go >= 1.13

go get -u github.com/shockerli/cvt

Usage

English | 中文

with error

Method __E(): expect handle error, while unable to convert

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

custom type and pointers

dereferencing pointer and reach the original type

type Name string

var name Name = "jioby"

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

ignore error

Method __(): ignore error, while convert failed, will return the zero value of type

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

with default

return the default value, while convert failed

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

more

1000+ unit test cases, for more examples, see *_test.go

License

This project is under the terms of the MIT license.

Thanks

JetBrains Logo (Main) logo

About

Easy and safe convert any value to another type in Go. (Go 数据类型安全转换)

https://cvt.shockerli.net

License:MIT License


Languages

Language:Go 99.4%Language:Makefile 0.6%