在Go中轻松安全地从一种数据类型转换为另一种数据类型
Go to file
2020-07-02 03:43:16 +00:00
.gitignore Remove expensive TRACE logging 2016-09-26 10:42:49 +02:00
.travis.yml travis: Add Go 1.12 2019-05-30 20:38:32 +02:00
cast_test.go Fix Travis build 2018-10-25 00:59:28 +02:00
cast.go Add support for map of int64 and map of int 2018-10-24 20:00:14 +02:00
caste.go Fix uint, uint8, uint16, uint32 and uint64 conversion in ToStringE function. 2019-12-18 08:28:14 +01:00
go.mod Fix Travis build 2018-10-25 00:59:28 +02:00
go.sum Fix Travis build 2018-10-25 00:59:28 +02:00
LICENSE Initial commit 2014-04-03 11:21:16 -07:00
Makefile travis: Only check gofmt on Go 1.12 2019-05-31 11:32:28 +02:00
README.md 更新 'README.md' 2020-07-02 03:43:16 +00:00

cast

GoDoc Build Status Go Report Card

在Go中轻松安全地从一种类型转换为另一种类型

Dont Panic! ... Cast

What is Cast?

Cast是一个库用于以一致且简单的方式在不同的go类型之间进行转换。

Cast提供简单的功能可轻松将数字转换为字符串进入布尔等接口。当明显转换是可能的。 它不会尝试猜测您的意思例如您只能在字符串为字符串时将其转换为int int的表示形式例如“ 8”。 Cast的开发目的是用于Hugo, 使用YAMLTOML或JSON的网站引擎用于元数据。

Why use Cast?

在Go中使用动态数据时您通常需要强制转换或转换数据 从一种类型变成另一种类型。 强制转换不仅限于使用类型断言(尽管 它在可能的情况下使用它)来提供非常直接和方便的库。

如果您正在使用接口来处理诸如动态内容之类的内容您将需要一种简单的方法来将接口转换为给定类型。 这个是您的库。 如果您要从YAMLTOML或JSON或其他缺少格式的数据中获取数据完整类型那么Cast是适合您的库。

Usage

Cast provides a handful of To_____ methods. These methods will always return the desired type. If input is provided that will not convert to that type, the 0 or nil value for that type will be returned.

Cast also provides identical methods To_____E. These return the same result as the To_____ methods, plus an additional error which tells you if it successfully converted. Using these methods you can tell the difference between when the input matched the zero value or when the conversion failed and the zero value was returned.

The following examples are merely a sample of what is available. Please review the code for a complete set.

Example ToString:

cast.ToString("mayonegg")         // "mayonegg"
cast.ToString(8)                  // "8"
cast.ToString(8.31)               // "8.31"
cast.ToString([]byte("one time")) // "one time"
cast.ToString(nil)                // ""

var foo interface{} = "one more time"
cast.ToString(foo)                // "one more time"

Example ToInt:

cast.ToInt(8)                  // 8
cast.ToInt(8.31)               // 8
cast.ToInt("8")                // 8
cast.ToInt(true)               // 1
cast.ToInt(false)              // 0

var eight interface{} = 8
cast.ToInt(eight)              // 8
cast.ToInt(nil)                // 0