cast.ToInt(8)// 8cast.ToInt(8.31)// 8cast.ToInt("8")// 8cast.ToInt(true)// 1cast.ToInt(false)// 0vareightinterface{}=8cast.ToInt(eight)// 8cast.ToInt(nil)// 0
ToInt() ToInt()函数用于将非 int类型数据转换为对应的int表示,具体的函数签名如下。 示例代码如下: cast.ToInt(8)// 8cast.ToInt(8.31)// 8cast.ToInt("8")// 8cast.ToInt(true)// 1cast.ToInt(false)// 0vareightinterface{} =8cast.ToInt(eight)// 8cast.ToInt(nil)// 0 __EOF__...
val=1 type=stringval=3.14 type=stringval=hello type=stringval=golang type=stringval=frank type=stringval= type=string // 值为空字符串val= type=string // 值为空字符串 阅读上面这段代码,我们可以发现最后两行代码的输出结果都是空字符串,实际上并非如此,我们可以使用cast.ToStringE()函数转换参数f,...
到了第二个ToInt,cast 的优势就更明显了,传统方式下,一个interface{}类型的"123"如果要转换成int,必须先类型断言为string,再使用strconv转换成int,代码就不写了,想象一下就知道有多麻烦,而 cast 可以将这个过程一步到位。 接着是第三个输出cast.ToInt(str),这里的str是一个string类型的"hello, world!",它...
type st struct { name string } fmt.Println(cast.ToStringMap(&st{name: "名字"})) // map[] 零值map[],无法直接转换。 布尔转其他 b1 := true b2 := false fmt.Println(cast.ToString(b1)) //true fmt.Println(cast.ToInt(b1)) // 1 fmt.Println(cast.ToInt(b2)) // 0 fmt.Println(ca...
unable to cast []int{1, 2, 3} of type []int to string 阅读上面这段代码,我们可以发现,相同的给定参数,使用不同函数(cast.ToString() 和cast.ToStringE()),得到的返回结果不同。 阅读cast 源码,我们可以发现,cast.ToString() 底层实现是调用 cast.ToStringE(),只不过是将 cast.ToStringE() 返回的...
func ToString(i interface{}) string {v, _ := ToStringE(i)returnv} 1. 2. 3. 4. 我们可以使用 cast.ToxxxE() 函数,判定转换后得到的类型零值是否是错误。 03总结 本文我们介绍极简类型转换三方库 cast,它可以极大提升我们的开发效率,并且使我们的代码更加优雅,帮助我们更加容易和安全地操作类型转换。
Go 类型转换的三方库cast是一个使用比较多的库,我们使用 cast[2]来处理 Part02 的类型转换需求,代码如下: func main() { age2 :="23"age2Int8 :=cast.ToInt8(age2) fmt.Printf("%T age2=%s\n", age2, age2) fmt.Printf("%T age2Int8=%d\n", age2Int8, age2Int8) ...
package mainimport("flag""fmt")func main(){// 定义命令行选项var name string var ageintvar marriedboolflag.StringVar(&name,"name","Guest","your name")flag.IntVar(&age,"age",18,"your age")flag.BoolVar(&married,"married",false,"are you married?")// 解析命令行参数flag.Parse()// 访...
string phoneNumber=138001380001380013800013800138000 intphoneNumberInt=9223372036854775807err=strconv.Atoi:parsing"138001380001380013800013800138000":value out of range 1. 阅读上面这段代码输出的错误信息value out of range,也就是说如果我们需要转换的值超出返回,Go 语言标准库strconv提供的函数Atoi会返回错误。