开源地址

https://github.com/spf13/cast

Cast是什么?

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

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

为什么使用Cast"htmlcode">
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的资料请关注其它相关文章!

标签:
golang,类型转换组件,golang,cast

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“golang类型转换组件Cast的使用详解”
暂无“golang类型转换组件Cast的使用详解”评论...

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。