go语言中实现类型转换,了解一下cast组件
Go  /  管理员 发布于 3年前   965
我今天看了一下beego中也默认集成了cast组件包了,用的时候直接引入就OK了
go语言是静态强类型语言,所以代码中对类型要求的死死的,如果是自己手动去处理,一容易出错,二不能兼容多数类型,比较麻烦。
这个时候cast组件的作用就大且方便了,
使用cast组件不但在Go中从一种类型非常轻松安全地转换为另一种类型,
而且能够让代码更健壮、可维护性也更高。
Cast是一个以一致且简单的方式在不同go类型之间进行转换的库。
git:
https://github.com/spf13/cast
Cast 提供了简单的函数来轻松地将数字转换为字符串,将接口转换为布尔值等。
当明显的转换可能时,Cast 会智能地执行此操作。
它不会尝试猜测您的意思,例如,只有当字符串是 int 的字符串表示形式(例如“8”)时,您才能将字符串转换为 int。
Cast 是为在 Hugo 中使用而开发的,Hugo 是一个使用 YAML、TOML 或 JSON 来获取元数据的网站引擎。
用法
Cast 提供了一些 To_____ 方法。
这些方法将始终返回所需的类型。
如果提供的输入不会转换为该类型,则将返回该类型的 0 或 nil 值。
Cast 还提供了相同的方法 To_____E。
这些返回与 To_____ 方法相同的结果,加上一个额外的错误,告诉您它是否成功转换。
使用这些方法,您可以区分输入与零值匹配的时间或转换失败并返回零值的时间。
官方git上的例子
案例1 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"
案例2 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
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号