• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    golang类型转换组件Cast的使用详解

    开源地址

    https://github.com/spf13/cast

    Cast是什么?

    Cast是一个库,以一致和简单的方式在不同的go类型之间转换。

    Cast提供了简单的函数,可以轻松地将数字转换为字符串,将接口转换为bool类型等等。当一个明显的转换是可能的时,Cast会智能地执行这一操作。它不会试图猜测你的意思,例如,你只能将一个字符串转换为int的字符串表示形式,例如“8”。Cast是为Hugo开发的,Hugo是一个使用YAML、TOML或JSON作为元数据的网站引擎。

    为什么使用Cast?

    在Go中处理动态数据时,通常需要将数据从一种类型转换为另一种类型。强制转换不仅仅是使用类型断言(尽管它在可能的情况下使用类型断言),它提供了一个非常直接和方便的库。

    如果您正在使用接口来处理诸如动态内容之类的事情,那么您将需要一种简单的方法来将接口转换为给定类型。这是给你的图书馆。

    如果您从YAML、TOML或JSON或其他缺乏完整类型的格式中获取数据,那么Cast就是适合您的库。

    使用方式

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

    Cast也提供了 To_____E相同的方法。这些方法返回与To_____方法相同的结果,外加一个额外的错误,告诉您是否成功转换。使用这些方法,您可以分辨输入匹配零值时的不同,以及转换失败时返回零值时的不同。

    案例

    下面的例子仅仅是现有例子的一个例子。请查看完整的代码集。

    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

    main函数

    package main
    
    import (
    	"fmt"
    	"reflect"
    
    	"github.com/spf13/cast"
    )
    
    func main() {
    	var foo interface{} = "one more time"
    	box := cast.ToString(foo)
    	fmt.Println(box)
    	box = cast.ToString("3.12021")
    	fmt.Println(box)
    
    	cvIntBox := cast.ToInt(8)
    	fmt.Println(cvIntBox, reflect.TypeOf(cvIntBox))
    	cvFloatBox := cast.ToFloat32(8.31)
    	fmt.Println(cvFloatBox, reflect.TypeOf(cvFloatBox))
    	cvBoolBox := cast.ToBool(true)
    	fmt.Println(cvBoolBox, reflect.TypeOf(cvBoolBox))
    }

    输出

    one more time
    3.12021
    8 int
    8.31 float32
    true bool

    以上就是golang类型转换组件Cast的使用详解的详细内容,更多关于golang类型转换组件Cast的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • go 类型转换方式(interface 类型的转换)
    • Go语言strconv包实现字符串和数值类型的相互转换
    • Golang中的自定义类型之间的转换的实现(type conversion)
    • go类型转换及与C的类型转换方式
    上一篇:Golang定时器的2种实现方法与区别
    下一篇:golang时间处理工具箱now的使用详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    golang类型转换组件Cast的使用详解 golang,类型,转换,组件,Cast,