Go 语言 极简类型转换库 -- cast

433次阅读  |  发布于3年以前

今天我们再来介绍 spf13 大神的另一个库cast。cast是一个小巧、实用的类型转换库,用于将一个类型转为另一个类型。最初开发cast是用在hugo中的,后来才广泛被人所熟知,并推广开来。

# 1. 使用方法

Cast提供了一些To_____方法。这些方法将始终返回所需的类型。如果提供了不会转换为该类型的输入,则将返回该类型的0或nil值

Cast还提供了与To_____E相同的方法。这些返回与To_____方法相同的结果,外加一个附加错误,告诉您是否成功转换。使用这些方法,您可以分辨出输入何时与零值匹配或转换失败与返回零值之间的区别。

# 2. string与int类型转换

这一组函数是我们平时编程中用的最多的。

ToString()

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"

ToInt()

ToInt()函数用于将非 int类型数据转换为对应的int表示,具体的函数签名如下。

示例代码如下:

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

本篇文章只对一些简单场景做了一些演示,示例全部来自 github readme 文档

除此之外,cast 还非常非常多的类型之间的转换,更多函数建议直接查看官方文档:https://github.com/spf13/cast。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8