Go string和interface{}与其他类型互转

        使用过go语言的都知道go语言对于类型的控制有多么的严格,因此所有的类型都应该通过显示的转换来完成,下面就给出常见的string和其他常见类型的转换以及interface{}类型转换为其他类型,具体的底层实现可以参考strconv库中的实现。

package main


import (
	"fmt"
	"strconv"
)

func main() {
	//string与int互转
	var num1 int = 10;
	//Itoa底层调用的是FormatInt
	//I to S
	str1 := strconv.Itoa(num1)
	fmt.Println(str1)
	//S to I
	num1_int, _ := strconv.Atoi(str1)
	fmt.Println(num1_int)

	//int64与string类型
	var num2 int64 = 432;
	//I to S
	str2 := strconv.FormatInt(num2, 10)
	fmt.Println(str2)
	//S to I
	num2_int, _ := strconv.ParseInt(str2, 10, 64)
	fmt.Println(num2_int)

	//float与string互转
	//bitSize表示最后一位的位数设置为float32或者float64类型
	var f1 float64 = 12.432
	//F to S
	str3 := strconv.FormatFloat(f1, 'E', -1, 32)
	fmt.Println(str3)
	//S to F
	f_float, _ := strconv.ParseFloat(str3, 32)
	fmt.Println(f_float)

	//	bool与string互转
	var bb bool = true
	//B to S
	str4 := strconv.FormatBool(bb)
	fmt.Println(str4)
	//S to B
	b, _ := strconv.ParseBool(str4)
	fmt.Println(b)

	//interface转其他类型————返回值是interface,直接赋值是无法转化的
	//interface 转string
	var a interface{}
	var str5 string
	a = "3432423"
	str5 = a.(string)
	fmt.Println(str5)

	//interface 转int
	var m interface{}
	var m1 int
	m = 43
	m1 = m.(int)
	fmt.Println(m1)

	//interface 转float64
	var ff interface{}
	var ff1 float64
	ff = 432.54
	ff1 = ff.(float64)
	fmt.Println(ff1)
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

double_happiness

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值